Tính độ khó của câu hỏi Code Golf


43

Cuộc họp

Độ khó của câu hỏi Code Golf có thể được tính như sau:

công thức

Trong trường hợp vlà số lần xem một câu hỏi có

alà số câu trả lời của một câu hỏi

và ⌈ xtoán tử trần .

Cũng thế:

kẹp

Câu hỏi khó hiện tại: ***

Bài tập, nhiệm vụ

Viết chương trình sẽ lấy hai số nguyên (v and a)và đưa ra độ khó asterisks (*).

Đầu vào có thể ở dạng một mảng, một chuỗi tách biệt hoặc là các đối số hàm riêng biệt

Kiểm tra dữ liệu

Views   Answers Difficulty  Program Output
163     2       2           **
548     22      1           *
1452    24      1           *
1713    37      1           *
4162    32      2           **
3067    15      3           ***
22421   19      10          **********

Ví dụ với mã giả

v: 1713    
a: 37
out = clamp(ceil(((v/a)/700)*10), 0, 10); // evaluates to 1
//program will output '*'

Mã ngắn nhất tính bằng byte thắng! Trailing / không gian hàng đầu được cho phép.


3
Tôi thấy rằng LaTeX khó hiểu hơn về chuỗi công thức đơn giản .. nhưng bất cứ điều gì đa số tôi muốn tôi đoán ..
Shaun Wild

3
Bạn gần như nên thêm [ underhanded ] cho câu hỏi được đặt dưới tay.
Adám

5
Đây là một câu hỏi Code Golf. Không phải là một hệ thống thực tế đang được thực hiện vào trang web. Ai quan tâm nếu nó không công bằng?
Shaun Wild

13
Nó hơi sớm để tôi có thể thiếu một cái gì đó ở đây, nhưng tại sao /700 * 10thay vì /70?
Kevin L

4
@KevinL Ssshhhh;)
Shaun Wild

Câu trả lời:


49

JavaScript (ES6), 40 39 byte

v=>a=>"**********".substring(10-v/a/70)

Bởi vì substringcung cấp hành vi kẹp và "trần" cần thiết. Chỉnh sửa: Thông thường tôi quá lười để làm phiền, nhưng vì nó có 4 upvote, tôi đã làm theo lời khuyên của @ MarsUltor để tiết kiệm 1 byte bằng cách curry.


Ồ, đó là một cách sử dụng tốt của chuỗi con :-)
Dylan Meeus

7
Sử dụng cà ri:v=>a=>
ASCII - chỉ

3
Bạn có thể sử dụng substrthay thế? Tôi biết tham số thứ hai tạo ra sự khác biệt, nhưng không chắc chắn về thông số thứ nhất ...
Dom Hastings

1
@DomHastings: Có, mặc dù slicesẽ còn ngắn hơn.
Yay295

5
@DomHastings Không, cả hai substrslicediễn giải một đối số phủ định là đếm ngược từ cuối chuỗi.
Neil

38

Tôi đã muốn làm điều này trong một thời gian ...

HTML + CSS 491 487 485 byte

-4 byte nhờ Conor O'Brien
-2 byte nhờ Phát hành hạt nhân Helium

Đầu vào được lấy là chiều rộng và chiều cao của cửa sổ trang; chiều rộng là số lượt xem và chiều cao là số câu trả lời.

<style>p{overflow:hidden;width:1ch}@media(max-aspect-ratio:70/2){p{width:1ch}}@media(max-aspect-ratio:70/3){p{width:2ch}}@media(max-aspect-ratio:70/4){p{width:3ch}}@media(max-aspect-ratio:70/5){p{width:4ch}}@media(max-aspect-ratio:70/6){p{width:5ch}}@media(max-aspect-ratio:70/7){p{width:6ch}}@media(max-aspect-ratio:70/8){p{width:7ch}}@media(max-aspect-ratio:70/9){p{width:8ch}}@media(max-aspect-ratio:7/1){p{width:9ch}}@media(max-aspect-ratio:70/11){p{width:10ch</style><p>**********

Bạn có thể thử nó trong trình duyệt của bạn bằng cách nhập

data:text/html,<style>p{overflow:hidden;width:1ch}@media(max-aspect-ratio:70/2){p{width:1ch}}@media(max-aspect-ratio:70/3){p{width:2ch}}@media(max-aspect-ratio:70/4){p{width:3ch}}@media(max-aspect-ratio:70/5){p{width:4ch}}@media(max-aspect-ratio:70/6){p{width:5ch}}@media(max-aspect-ratio:70/7){p{width:6ch}}@media(max-aspect-ratio:70/8){p{width:7ch}}@media(max-aspect-ratio:70/9){p{width:8ch}}@media(max-aspect-ratio:7/1){p{width:9ch}}@media(max-aspect-ratio:70/11){p{width:10ch</style><p>**********

như một url trong một tab mới.


11
+1 để nghĩ ra khỏi hộp - ehm, nghĩ về cái hộp ...
Adám

2
Bạn có cần thẻ p đóng?
Conor O'Brien

Tôi thích cách nó cập nhật khi tôi thay đổi kích thước của cửa sổ.
YSC

@ ConorO'Brien: Điểm tốt!
Yay295

1
Bạn không cần hai }s cuối cùng quá.
betseg


12

Javascript (ES6), 37 36 byte

v=>a=>"*".repeat((v/=a*70)<9?v+1:10)

Đã lưu 1 byte bằng cách currying, nhờ TheLethalCoder


3
Bạn có thể sử dụng v=>a=>thay vì (v,a)=>?
TheLethalCoder

@TheLethalCoder - Đã cập nhật. Cảm ơn!
Arnauld

2
Không làm việc cho v=70, a=1nó?
Neil

1
@Neil - Đúng vậy. Sẽ giảm đi 1 điểm nếu số câu trả lời là ước số chính xác của số lượt xem. Hay nói cách khác, nó dự đoán góc nhìn tiếp theo. ;-)
Arnauld

11

Toán học, 38 35 byte

StringRepeat["*",10,⌈#/#2/70⌉]&

Cảm ơn @MartinEnder cho 3 byte


1
Xin chào, và chào mừng đến với PPCG! Đây là một câu trả lời tuyệt vời!
NoOneIsHãy 17/8/2016

@NoOneIsCảm ơn! Ban đầu tôi đã nghĩ đến Clip, nó có khá nhiều cú pháp giống như Kẹp của OP, nhưng sau đó tôi thấy nó StringRepeatcó đối số thứ ba tùy chọn để cắt ngắn.
u54112

3
Có các ký tự Unicode cho khung trần bên trái và bên phải chỉ tạo thành 6 byte thay vì 9 ký tự bạn cần Ceiling[].
Martin Ender

9

EXCEL, 29 byte

Nếu bạn tính Excel là đại diện của VBA Excel, thì bạn có thể sử dụng

=REPT("*",MIN(1+v/(70*a),10))

trong đó valà tên của các ô tham chiếu.


3
Xin chào, và chào mừng đến với PPCG! Đây là một bài viết đầu tiên tốt đẹp! Và cũng có giá trị.
Rɪᴋᴇʀ

Xin chào @EasterlyIrk. Cảm ơn vì sự chào đón nồng nhiệt :)
Anastasiya-Romanova

8

CJam, 18 15 14 byte

Đã lưu 1 byte nhờ Peter Taylor và 3 byte nhờ Adnan

'*A*q~d/70/m]<

Dùng thử trực tuyến

'*A*            e# Push "**********"
    q~d/        e# Get the input and divide the two numbers
        70/     e# Divide by 70
           m]   e# Ceil, yielding x
             <  e# Slice the string, taking the first x elements

8

C #, 68 49 48 byte

v=>a=>"**********".Substring((int)(10-v/a/70d));

Đây là phiên bản C # của câu trả lời xuất sắc này của Neil.

Đã lưu thêm 19 byte nhờ Neil


Hãy thử (int)System.Math.Floor(10-v/a/70)hoặc chỉ (int)(10-v/a/70).
Neil

@Neil Có vẻ như tôi phải rời khỏi 70dmột mình nhưng hoạt động tốt hơn nhờ
TheLethalCoder 17/8/2016

1
Xin lỗi, đã không nhìn thấy dở đó.
Neil

Một câu trả lời khác có thể tiết kiệm một byte khi dùng cà ri, tôi nghĩ:v=>a=>
Brian McCutchon

@BrianMcCutchon Thậm chí không nhận ra làm thế nào tôi có thể làm điều đó trong C # cảm ơn
TheLethalCoder

7

Java 8, 57 byte

Sử dụng lambda để lưu byte, thực hiện phép tính và chuỗi con để trả về câu trả lời.

(v,a)->"**********".substring(Math.max(0,(700*a-v)/70/a))

Đây là lớp học của tôi để thử nghiệm nó.

public class DifficultyCalculator{
    static interface h{ String f(int v, int a);}
    static void g(h H){
        System.out.print(H.f(163,2));System.out.println("\t**");
        System.out.print(H.f(548,22));System.out.println("\t*");
        System.out.print(H.f(1452,24));System.out.println("\t*");
        System.out.print(H.f(1713,37));System.out.println("\t*");
        System.out.print(H.f(4162,32));System.out.println("\t**");
        System.out.print(H.f(3067,15));System.out.println("\t***");
        System.out.print(H.f(22421,19));System.out.println("\t**********");
    }
    public static void main(String[] args) {
        g( // 70
            (v,a)->"**********".substring(java.lang.Math.max(0,(int)(10-v/70d/a)))
        );
    }
}

Cập nhật

  • -3 [16-08-19] Phân chia số nguyên được sử dụng
  • -10 [16-08-18] Đã xóa nhập không cần thiết, nhờ @ OlivierGrégoire !
  • -18 [16-08-17] Trả về chuỗi thay vì in

2
Thật tuyệt, một câu trả lời Java không phải là một chuyến tàu!
Ismael Miguel

4
Không cần java.lang.vì nó là gói bao gồm mặc định.
Olivier Grégoire

Bạn đang làm tròn không trần!

1
@Advancid Tôi đã thử nghiệm nó và System.out.println((int)2.99);in 2và kể từ khi tôi lấy giá trị được thả nổi từ 10 rồi chạm sàn, nó cũng giống như lấy trần từ 10.
NonlinearFbean

6

MATL , 12 byte

/70/0:9>42*c

Hãy thử trực tuyến!

Giải trình

Việc làm tròn và kẹp được thực hiện đồng thời như sau: số lượng x = v/a/70được so sánh với từng phần tử của mảng [0 1 ... 9]. Số lượng của mảng vượt quá xsẽ trở thành dấu hoa thị và phần còn lại sẽ là khoảng trắng.

/      % Take the two numbers implicitly. Divide. (Example: for inputs 3067, 15
       % we get 204.47)
70/    % Divide by 70 (we get 2.92)
0:9    % Push array [0 1  ... 9]
>      % See which of those are exceeded by the previous number (2.92 exceeds
       % 0, 1 and 2, so we get [1 1 1 0 ... 0]). This does the rounding up
       % and the clamping
42*    % Multiply by 42, which is the ASCII code of '*' (we get [42 42 42 0 ... 0])
       % Char 0 will be displayed as space
c      % Convert to char. Implicitly display

5

Python2, 32 byte

đã lưu 3 + 2 byte và sửa lỗi bằng một lỗi nhờ Leaky Nun

lambda v,a:('*'*10)[:~-v/a/70+1]

tương tự như câu trả lời của Neils. Sử dụng thực tế là Python2 không phân chia số nguyên.


thất bại khi v=70a=1
Leaky Nun

f=thể được gỡ bỏ
Leaky Nun

v, acó thể trở thànhv,a
Leaky Nun

cảm ơn! nên làm việc bây giờ Có thể sai cho v = 0, a = 1 bây giờ, nhưng trường hợp này không thể tồn tại, phải không?
toán học

Điều đó sẽ không sai với v = 0, a = 1.
Nữ tu bị rò rỉ

5

Haskell, 35 byte

v#a=[1..min(ceiling$v/a/70)10]>>"*"

[1..min(ceiling$v/a/70)10]tạo phạm vi từ 1 đến độ khó được tính toán (danh sách trống cho độ khó 0). a>>blặp lại danh sách b length athường xuyên.



4

C #, 97 89 87 77 42 41 byte

v=>a=>new string('*',(v/=a*70)<9?v+1:10);

Đã lưu 10 byte nhờ Adám

Đã lưu một vài byte nhờ Arnauld


Bạn có thể tiết kiệm rất nhiều bằng cách thay thế (int)System.Math.Ceiling(v/a/70d)bằng (v+69)/(70*a)... Lưu ý rằng hơn nữa v / a không thể âm, vì vậy ccó thể được đơn giản hóa rất nhiều vì bạn không cần phải kiểm tra điều đó.
Tom van der Zanden

4

Perl, 35 32 byte

say"*"x(10-($-=10-pop()/70/pop))

Sử dụng -Eđể kích hoạt sayvà đưa ra các đối số theo thứ tự ngược lại:

perl -E 'say"*"x(10-($-=10-pop()/70/pop))' 2 163

Nếu các đối số trên STDIN được cho phép, thì sau đây là 29 byte:

(echo 163; echo 2) | perl -pe '$_="*"x(10-($-=10-$_/70/<>))'

Tôi không thể nhớ nếu nó giống hệt nhau, nhưng bạn có thể 0|thay thế $-=không? (Suy nghĩ về quyền ưu tiên của nhà điều hành có thể không đúng ...)
Dom Hastings

@DomHastings 0|biến một số âm thành một số khổng lồ (dẫn đến 0 *s), $-=clip thành 0 (dẫn đến mười *giây), đó là những gì tôi cần ở đây
TonMedel 17/8/2016

À, tất nhiên, nó chỉ là một số nguyên dương! Cảm ơn vì đã nhắc nhở. Tôi chắc chắn rằng tôi sẽ quên điều đó khi tôi cần nó ... 😀
Dom Hastings

4

R, 68, 50 52 byte

f=function(v,a)cat(rep("*",1+min(v/a/70,10)),sep="")

rep ngầm đặt một phút trên số 0.

Cảm ơn @plannapus và @ Anastasiya-Romanova vì đã phát hiện ra lỗi của tôi.


Bạn có thể xóaf=
Cyoce

1
Đầu ra của mã của bạn không bằng Dữ liệu thử nghiệm. Bạn nên thêm 2 byte 1+sau min(để có cùng kết quả đầu ra
Anastasiya-Romanova


3

Javascript ES6, 48 byte

a=>b=>"*".repeat(Math.ceil(Math.min(a/b/70,10)))

3

C, 54 , 51 , 50 , 49 byte

Giả sử vlà dương hoặc bằng 0 và adương, x < mintrường hợp kẹp không bao giờ được đáp ứng, vì không có cách nào kết quả của hoạt động trần có thể âm. Ngoài ra, toán học số nguyên trên các giá trị không âm luôn mang lại kết quả cuối cùng, vì vậy chúng tôi thêm 1vào để có được mức trần.

Giải pháp này yêu cầu một writechức năng, hoạt động trên Linux ít nhất.

F(v,a){write(1,"**********",(v/=a*70)>9?10:v+1);}

Kiểm tra chính:

int main() {
  F(163, 2);
  putchar('\n');
  F(548, 22);
  putchar('\n');
  F(1452, 24);
  putchar('\n');
  F(1713, 37);
  putchar('\n');
  F(4162, 32);
  putchar('\n');
  F(3067, 15);
  putchar('\n');
  F(22421, 19);
  putchar('\n');
}

1
Thay thế (v=v/a/70)bằng (v/=a*70)tiết kiệm 1 byte.
trần mèo

Bắt tốt đẹp @ceilingcat!
Stefano Sanfilippo

2

javascript: 82 73 byte

 (v,a)=>console.log("*".repeat(Math.min(Math.max(0,Math.ceil(v/a/70),10)))
  • đã lưu một số byte sau khi Adám chỉ ra rằng tôi đã bỏ qua / 700 * 10 = / 70 và loại bỏ các dấu ngoặc

@ Adám có gì với bản chỉnh sửa?
Martin Ender

@ Adám Nếu mọi người đọc bất kỳ câu trả lời nào họ sẽ có spoiler. Quay trở lại, bởi vì hiện tại câu đó khá vô dụng và chỉ khiến mọi người nhấp vào lịch sử sửa đổi.
Martin Ender

@ Adám Đó là những gì tôi thường sử dụng cho mình nhưng tôi không thấy bất kỳ tác hại nào trong phiên bản hiện tại.
Martin Ender

Không cần console.lognó, trở về là tốt. Bạn cũng có thể lưu một byte v=>a=>thay vì(v,a)=>
Cyoce


2

Sứa , 18 byte

P
#'*
mM/%i
10 %70

Đưa đầu vào theo định dạng [a v]. Hãy thử trực tuyến!

Giải trình

  • %là đối ứng, %701/70 cũng vậy .
  • i là đầu vào, như là một mảng hai yếu tố.
  • /%với đầu vào i%70giảm mảng ibằng cách lật phân chia với giá trị ban đầu %70. Nói cách khác, nó tính v / (a ​​/ (1/70)) , bằng với v / (70 * a) .
  • Mlấy trần của giá trị này, và mlấy tối đa của giá trị đó và 10.
  • #'*nhắc lại *nhân vật nghĩa đen nhiều lần.
  • P in kết quả mà không có dấu ngoặc kép.

2

MATLAB, 34 33 byte

Bởi vì tôi thích challange này rất nhiều, đây là một cho MATLAB (xuất ra các khoảng trắng theo sau):

@(v,a)[(ceil(v/a/70)>0:9)*42,'']

Lấy cảm hứng từ câu trả lời của @Luis Mendo. Cảm ơn @pajonk vì đã lưu một byte.


Cách tiếp cận tốt đẹp! Tôi đã có một byte 40 byte để đăng ... BTW, bạn có thể lưu một byte bằng cách sử dụng [... '']thay vì char(...). Và bạn có thực sự cần ceilkhi cuối cùng bạn đang so sánh với số nguyên?
pyjama 17/8/2016

2
cảm ơn @pajonk - người ta thực sự có thể tìm hiểu một số điều trên trang web này để làm cho mã của tôi thậm chí ít đọc hơn;)
toán học

2

m4, 136 135 byte

define(r,`ifelse($1,0,,eval($1>9),1,*`r(9)',*`r(decr($1))')')define(f,`r(ifelse(eval($1%($2*70)),0,eval($1/$2/70),eval($1/$2/70+1)))')

Xác định một macro flấy va, và mở rộng đến đầu ra chính xác. Hầu hết các chương trình là một thực hiện trần.


2

dc, 110 108 104 98 byte

Đây là một doozy vì cắt không phải là một điều. Ngoài ra, dc không thao tác chuỗi. Tôi thực sự đang chờ đợi một chuỗi có thể là <5 giờ mã hóa. Về mặt tích cực, cuối cùng tôi đã bắt đầu viết ra các cấu trúc phổ biến, như cho các vòng lặp. Cũng phải xây dựng làm tròn / trần, vì vậy cảm ơn vì điều đó.

[42P]sd[dsi[li0!=dli1-dsi0!=L]dsLx]sl[Isi[li0!=dli1-dsi0!=L]dsLx]sg[1+]saIk/70*0k1~0!=adI>ldI!>gIP

Được gọi trong bash:

echo 'v a (above)'|dc
# Wholly:
>> echo '163 2 [42P]sd[dsi[li0!=dli1-dsi0!=L]dsLx]sl[Isi[li0!=dli1-dsi0!=L]dsLx]sg[1+]saIk/70*0k1~0!=adI>ldI!>gIP'|dc
# outputs:
**
>> 

Thay thế (ở trên) bằng mã vavới các đối tác tương ứng của chúng ở trên. Các trích dẫn duy nhất rất quan trọng (nếu không bạn sẽ nhận được nội dung lịch sử của bash).


Giải thích:

[42P]sd   # Here we store a macro in register d to print 1 * without a newline

[dsi[li0!=dli1-dsi0!=L]dsLx]sl # Store the "less than" case, a for loop which
                        # uses the top-of the stack as it's number of iterations.
[Isi[li0!=dli1-dsi0!=L]dsLx]sg # Store the "greater than" case. It's the above,
                        # but it puts 10 on the stack to use instead.

[1+]sa # Store a macro to add 1 to whatever is the top-of-stack.


Ik # Set precision at non-zero to allow decimal division

/70* # Divide the top two of the stack, v/a; multiply by 70 (`/700*10` == `/70`)
             # dc is postfix and stack-based, so operators come after operands.

0k1~0!=a     # This is a ceiling function.
|> 0k  # set precision to 0 to perform integer division
|> 1~  # push the quotient of integer division by 1, and then the remainder. (r is top)
|> 0!=a # If the top-of-stack (decimal part) is not 0, add 1 to the quotient

dI>ldI!>g # Conditional statement
|> dI>l  # (d)uplicate the top, push 10 on. If 10 > the old top, execute the `l`ess-than
          # case, which loops top-of-stack times.
|> dI!>g # Complement of the above, using the `g`reater-than to loop 10 times.

IP # print a newline

Đây có lẽ là khả năng chơi gôn nhiều hơn, nhưng tôi đã cố gắng hoàn thành nó để tránh tối ưu hóa sớm.

  • 2 byte được lưu bằng cách sao chép-lưu thay vì lưu-tải
  • 4 byte được lưu chia cho 70
  • 6 byte từ các đề xuất của daniero (không phải chuỗi, số ASCII thay vào đó; 10 => I)

[*]n=> 42P. Mỗi trường hợp 10có thể được thay thế bởi I. []p=>IP
daniero

2

Haskell, 35 byte

Giải pháp này hoàn toàn khác với câu trả lời của Laikoni vì nó nhận được một cái gì đó tầm thường này. Tuy nhiên, điểm số (bây giờ) là hoàn toàn giống nhau.

v%a=take(ceiling$v/a/70)[0..9]>>"*" 

Điều này tạo ra mười ngôi sao, sau đó loại bỏ một số. Dễ dàng mở rộng đến khó khăn tùy ý với một danh sách vô hạn.

Tôi đã quản lý để cạo thêm một byte. Nhưng trong khi tất cả các trường hợp thử nghiệm hoạt động, điều này không nên nói chung.

v%a=take(1+div v(a*70))[0..9]>>"*"

2

TI-Basic, 39 byte

Prompt V,A
sub("**********",1,max(0,min(10,int(V/A/70)+1

1

PowerShell v2 +, 47 byte

-join(('*'*11)[1..($args[0]/$args[1]/70+.499)])

Phần nào đó là một câu trả lời JavaScript của @ Neil .

Lấy đầu vào $argsvà chia chúng, sau đó chia nó cho 70và thêm .499. Vì PowerShell thực hiện làm tròn ngân hàng , điều này có hiệu quả ceilđến hai điểm thập phân chính xác. Nếu cần độ chính xác bổ sung, hãy giải quyết càng nhiều 9s theo yêu cầu.

Cùng với 1.., điều này tạo thành một chỉ mục phạm vi thành một chuỗi. Chuỗi là '*'*11, tức là '***********'. Điều đó dẫn đến một mảng char, vì vậy chúng tôi -joinkết hợp lại thành một chuỗi. Chuỗi đó được để lại trên đường ống và đầu ra là ẩn. Giống như câu trả lời của Neil, điều này thực sự "kẹp" đầu ra phải nằm trong khoảng từ 1 đến 10 sao.

Phòng thử nghiệm

PS C:\Tools\Scripts\golfing> @(@(163,2), @(548,22), @(1452,24), @(1713,37), @(4162,32), @(3067,15), @(22421,19))|%{($_-join', ')+" -> " +(.\difficulty-of-a-question $_[0] $_[1])}
163, 2 -> **
548, 22 -> *
1452, 24 -> *
1713, 37 -> *
4162, 32 -> **
3067, 15 -> ***
22421, 19 -> **********

1

Python 3, 69 68 byte

Tôi không muốn sao chép câu trả lời Python 2, vì vậy câu trả lời của tôi dài hơn một chút.

from math import*
x=lambda v,a:print(max(0,min(ceil(v/a/70),10))*'*')

Đã lưu 1 byte nhờ Người đàn ông chương trình


Bạn cần bao gồm nhập khẩu, nhưng from math import *sẽ tiết kiệm được một vài byte
NonlinearFbean

Bao gồm việc nhập vào số byte
Cody

Theo thông số kỹ thuật, 0 là các ngôi sao tối thiểu, không phải 1. Cũng lưu toàn bộ 1 byte bằng cách import*không có khoảng trống.
Người đàn ông của chương trình

Rất tiếc tôi đọc sai tối thiểu. Cảm ơn vì tiền boa
Cody

1
@Programman Mặc dù thông số kỹ thuật nói 0 là tối thiểu, việc chia và nhân các số nguyên không âm, số không khác được đảm bảo! = 0 và toán tử trần sẽ tạo ra bất cứ thứ gì trong khoảng 0-1 và làm cho nó 1. Mặc dù tôi cho rằng có thể là trường hợp của 0 lượt xem, tuy nhiên 0 lượt xem ngụ ý 0 câu trả lời, dẫn đến hành vi không xác định (chia cho 0). Có khả năng chứng minh rằng 0 là không thể và thậm chí không nên được đề cập.
Delioth 17/8/2016

1

Trên thực tế, 14 byte

:70a\\u9ukm'**

Hãy thử trực tuyến!

Lợi dụng thực tế là 0 lượt xem và 0 câu trả lời là không thể, và do đó ceil(v/a) > 0.

Giải trình:

:70a\\u9ukm'**
:70             push 70 ([70 a v])
   a            invert stack ([v a 70])
    \\          integer division twice ([v//a//70])
      u         add 1 ([v//a//70 + 1])
       9uk      push 10, make stack into list ([[v//a//70+1, 10]])
          m     minimum of list
           '**  push "*", repeat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.