Hitung kesulitan pertanyaan Kode Golf


43

Pengarahan

Kesulitan pertanyaan Golf Code dapat dihitung seperti:

rumus

Di mana vjumlah tampilan yang dimiliki pertanyaan

dan ajumlah jawaban yang dimiliki pertanyaan

dan ⌈ x ⌉ adalah operator langit - langit .

Juga:

penjepit

Kesulitan pertanyaan ini saat ini: ***

Tugas

Tulis sebuah program yang akan mengambil dua bilangan bulat (v and a)dan mengeluarkan kesulitan dalam asterisks (*).

Input dapat berupa array, string terpisah atau sebagai argumen fungsi terpisah

Data Uji

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          **********

Contoh dengan pseudocode

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

Kode terpendek dalam byte menang! Trailing / ruang utama diizinkan.


3
Saya menemukan bahwa LaTeX lebih sulit untuk memahami bahwa string formula sederhana .. tapi apa pun yang mayoritas inginkan saya kira ..
— Shaun Wild

3
Anda hampir harus menambahkan [ curang ] untuk pertanyaan yang curang.
— Adám

5
Ini pertanyaan Golf Code. Bukan sistem aktual yang diterapkan ke situs. Siapa yang peduli kalau itu tidak adil?
— Shaun Wild

13
ini agak awal jadi saya mungkin kehilangan sesuatu di sini, tapi mengapa /700 * 10bukannya /70?
— Kevin L

4
@KevinL Ssshhhh;)
— Shaun Wild

Jawaban:


49

JavaScript (ES6), 40 39 byte

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

Karena substringmenyediakan penjepitan yang diperlukan dan perilaku "ceil" ing. Sunting: Biasanya saya terlalu malas untuk repot, tetapi karena mendapat 4 upvotes, saya telah mengikuti saran @ MarsUltor untuk menghemat 1 byte dengan menjelajah.


Oh, itu penggunaan substring yang bagus :-)
— Dylan Meeus

7
Gunakan currying:v=>a=>
— ASCII-only

3
Bisakah Anda menggunakannya substr? Saya tahu parameter kedua membuat perbedaan, tetapi tidak yakin tentang yang pertama ...
— Dom Hastings

1
@DomHastings: Ya, meskipun sliceakan lebih pendek.
— Yay295

5
@HomHastings Tidak, keduanya substrdan slicemenafsirkan argumen negatif sebagai menghitung mundur dari akhir string.
— Neil

38

Saya sudah lama ingin melakukan ini ...

HTML + CSS 491 487 485 byte

-4 byte terima kasih kepada Conor O'Brien
-2 byte terima kasih untuk Melepaskan Helium Nuclei

Input diambil sebagai lebar dan tinggi jendela halaman; lebar menjadi jumlah Tampilan, dan tinggi menjadi jumlah Jawaban.

<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>**********

Anda dapat mencobanya di browser Anda dengan memasukkan

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>**********

sebagai url di tab baru.


11
+1 untuk berpikir di luar kotak - ehm, memikirkan kotak ...
— Adám

2
Apakah Anda memerlukan tag p penutup?
— Conor O'Brien

Saya suka bagaimana pembaruan karena saya mengubah ukuran jendela.
— YSC

@ ConorO'Brien: Poin bagus!
— Yay295

1
Anda tidak perlu dua yang terakhir }juga.
— betseg

12

05AB1E, 11 byte

/70/î'*T×s£

Penjelasan

/            # divide v by a
 70/         # divide by 70
    î        # round up, call this n
     '*T×    # push 10 asterisks
         s£  # take n up to 10 asterisk
             # implicitly print

Cobalah online


12

Javascript (ES6), 37 36 byte

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

Disimpan 1 byte oleh currying, berkat TheLethalCoder


3
Bisakah Anda menggunakan v=>a=>bukan (v,a)=>?
— TheLethalCoder

@TheLethalCoder - Diperbarui. Terima kasih!
— Arnauld

2
Tidak berhasil, bukan v=70, a=1?
— Neil

1
@ Neil - Benar. Tidak aktif dengan 1 poin jika jumlah jawaban merupakan pembagi yang tepat dari jumlah tampilan. Atau dengan kata lain, ini mengantisipasi tampilan selanjutnya. ;-)
— Arnauld

11

Mathematica, 38 35 byte

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

Terima kasih kepada @MartinEnder selama 3 byte


1
Halo, dan selamat datang di PPCG! Ini jawaban yang bagus!
— NoOneIsHere

@NoOneIsHere Terima kasih! Awalnya saya berpikir Clip, yang memiliki sintaks yang hampir sama dengan OP's Clamp, tapi kemudian saya melihat bahwa StringRepeatada argumen opsional ketiga untuk pemotongan.
— u54112

3
Ada karakter Unicode untuk braket langit-langit kiri dan kanan yang bersama-sama membuat hanya 6 byte, bukan 9 yang Anda butuhkan Ceiling[].
— Martin Ender

9

EXCEL, 29 byte

Jika Anda menghitung Excel sebagai representasi VBA Excel, maka Anda bisa menggunakannya

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

di mana vdan aadalah nama sel referensi.


3
Hai, dan selamat datang di PPCG! Ini adalah posting pertama yang bagus! Dan valid juga.
— Rɪᴋᴇʀ

Hai juga @EasterlyIrk. Terima kasih atas sambutan hangatnya :)
— Anastasiya-Romanova 秀

8

CJam, 18 15 14 byte

Disimpan 1 byte berkat Peter Taylor dan 3 byte terima kasih kepada Adnan

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

Cobalah online

'*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));

Ini adalah versi C # dari jawaban yang luar biasa ini oleh Neil.

Menyimpan 19 byte lagi berkat Neil


Coba (int)System.Math.Floor(10-v/a/70)atau adil (int)(10-v/a/70).
— Neil

@Neil Sepertinya saya harus pergi 70dsendiri tetapi bekerja lebih baik terima kasih
— TheLethalCoder

1
Maaf, tidak melihat di dsana.
— Neil

Jawaban lain yang bisa menghemat satu byte dengan currying, saya pikir:v=>a=>
— Brian McCutchon

@BrianMcCutchon Bahkan tidak menyadari bagaimana saya bisa melakukannya dalam C # terima kasih
— TheLethalCoder

7

Java 8, 57 byte

Menggunakan lambda untuk menyimpan byte, melakukan kalkulasi dan substring untuk mengembalikan jawabannya.

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

Ini kelas saya untuk mengujinya.

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)))
        );
    }
}

Memperbarui

  • -3 [16-08-19] Divisi integer yang digunakan
  • -10 [16-08-18] Menghapus impor yang tidak perlu, terima kasih kepada @ OlivierGrégoire !
  • -18 [16-08-17] Kembalikan string alih-alih cetak

2
Bagus, jawaban Java yang bukan kereta!
— Ismael Miguel

4
Tidak perlu java.lang.karena itu termasuk paket default.
— Olivier Grégoire

Anda membulatkan bukan langit-langit!

1
@Advancid Saya mengujinya dan System.out.println((int)2.99);mencetak 2dan karena saya mengambil nilai pra-lantai dari 10 dan kemudian lantai, itu sama dengan mengambil langit-langit dari 10.
— NonlinearFruit

6

MATL , 12 byte

/70/0:9>42*c

Cobalah online!

Penjelasan

Pembulatan dan penjepitan dilakukan secara simultan sebagai berikut: jumlahnya x = v/a/70dibandingkan terhadap masing-masing elemen array [0 1 ... 9]. Jumlah array yang dilampaui olehx akan menjadi tanda bintang, dan sisanya akan menjadi spasi.

/      % 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

disimpan 3 + 2 byte dan dikoreksi oleh satu kesalahan berkat Leaky Nun

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

mirip dengan jawaban Neils. Menggunakan fakta bahwa Python2 melakukan pembagian integer.


gagal ketika v=70dana=1
— Leaky Nun

The f=dapat dihapus
— Leaky Nun

v, abisa menjadiv,a
— Leaky Nun

Terima kasih! harus bekerja sekarang. Mungkin salah untuk v = 0, a = 1 sekarang, tetapi kasus ini tidak ada, bukan?
— mathause

Itu tidak akan salah untuk v = 0, a = 1.
— Leaky Nun

5

Haskell, 35 byte

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

[1..min(ceiling$v/a/70)10]membuat rentang dari 1 hingga kesulitan yang dihitung (daftar kosong untuk kesulitan 0). sering a>>bmengulangi daftar b length a.


4

Pyke, 13 9 byte

/70/\**T<

Coba di sini!

Penjelasan:

/         -    num_1 / num_2
 70/      -   ^ / 70
    \**   -  "*" * ^
       T< - ^[:10]

4

C #, 97 89 87 77 42 41 byte

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

Disimpan 10 byte berkat Adám

Disimpan beberapa byte berkat Arnauld


Anda dapat menyimpan banyak keseluruhan dengan mengganti (int)System.Math.Ceiling(v/a/70d)dengan (v+69)/(70*a)... Perhatikan bahwa selain itu v / a tidak boleh negatif, jadi cbisa banyak disederhanakan karena Anda tidak perlu memeriksa itu.
— Tom van der Zanden

4

Perl, 35 32 byte

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

Gunakan -Euntuk mengaktifkan saydan memberikan argumen dalam urutan terbalik:

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

Jika argumen tentang STDIN diizinkan, berikut adalah 29 byte:

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

Saya tidak ingat apakah itu Sebaiknya persis sama, tetapi Anda dapat memiliki 0|bukannya $-=? (Berpikir prioritas operator mungkin tidak benar ...)
— Dom Hastings

@DomHastings 0|membuat angka negatif menjadi angka besar (mengarah ke nol *s), $-=klip ke 0 (mengarah ke sepuluh *), yang adalah apa yang saya butuhkan di sini
— Ton Hospel

Ah, tentu saja, itu hanya bilangan bulat positif! Terima kasih telah mengingatkan. Saya yakin saya akan lupa bahwa ketika saya membutuhkannya ... 😀
— Dom Hastings

4

R, 68, 50 52 byte

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

rep secara implisit menempatkan min pada angka 0.

Terima kasih kepada @plannapus dan @ Anastasiya-Romanova 秀 karena menemukan kesalahan saya.


Anda dapat menghapusf=
— Cyoce

1
Output dari kode Anda tidak sama dengan Data Uji. Anda harus menambahkan 2 byte lagi 1+setelah min(untuk mendapatkan output yang sama
— 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

Dengan asumsi yang vpositif atau nol dan apositif, x < minkasus penjepitan tidak pernah bertemu, karena tidak mungkin hasil operasi langit-langit menjadi negatif. Selain itu, bilangan bulat matematika pada nilai-nilai non-negatif selalu menghasilkan dasar dari hasil, jadi kami menambahkan1 untuk mendapatkan plafon.

Solusi ini memerlukan writefungsi, setidaknya dapat bekerja di Linux.

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

Tes utama:

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
Mengganti (v=v/a/70)dengan (v/=a*70)menghemat 1 byte.
— ceilingcat

Tangkapan bagus @ceilingcat!
— Stefano Sanfilippo

2

javascript: 82 73 byte

 (v,a)=>console.log("*".repeat(Math.min(Math.max(0,Math.ceil(v/a/70),10)))
  • menghemat beberapa byte setelah Adám menunjukkan saya mengabaikan / 700 * 10 = / 70 , dan penghapusan parens

@ Adám ada apa dengan hasil edit?
— Martin Ender

@ Adám Jika orang membaca salah satu jawaban, mereka sudah memiliki spoiler. Bergulir mundur, karena saat ini kalimat itu cukup tidak berguna dan hanya membuat orang mengklik pada riwayat revisi.
— Martin Ender

@ Adám Itulah yang biasanya saya gunakan sendiri tetapi saya tidak melihat ada salahnya di versi saat ini.
— Martin Ender

Tidak perlu console.log, kembali tidak apa-apa. Anda juga dapat menyimpan byte dengan v=>a=>alih - alih(v,a)=>
— Cyoce

2

Dyalog APL , 15 byte

'*'⍴⍨10⌊⌈⎕÷70×⎕

'*'⍴⍨karakter mengulangi ini berkali-kali:
10⌊min (10, ...
⎕÷input dibagi dengan
70×tujuh puluh kali
⎕input

TryAPL online!


Apakah pegolf akan menggunakan algoritma Mendo?
— Leaky Nun

@ LeakyNun Saya tidak berpikir begitu:'*'/⍨(⎕÷70×⎕)>⍳10
— Adám

2

Ubur-ubur , 18 byte

P
#'*
mM/%i
10 %70

Mengambil input dalam format [a v]. Cobalah online!

Penjelasan

  • %bersifat timbal balik, demikian %70juga 1/70.
  • i adalah input, sebagai array dua elemen.
  • /%dengan input idan %70mengurangi array idengan membalik divisi dengan nilai awal %70. Dengan kata lain, ini menghitung v / (a ​​/ (1/70)) , yang sama dengan v / (70 * a) .
  • Mmengambil plafon dari nilai ini, dan mmengambil maksimum dari itu dan 10.
  • #'*mengulangi *karakter literal yang berkali-kali.
  • P mencetak hasilnya tanpa tanda kutip.

2

MATLAB, 34 33 byte

Karena saya sangat menyukai tantangan ini, berikut adalah salah satu untuk MATLAB (output mengekor spasi putih):

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

Terinspirasi oleh jawaban @Luis Mendo. Terima kasih kepada @pajonk karena telah menghemat satu byte.


Pendekatan yang bagus! Saya punya satu 40 byte untuk memposting ... BTW, Anda dapat menyimpan satu byte menggunakan [... '']bukan char(...). Dan apakah Anda benar-benar membutuhkan ceilketika pada akhirnya Anda membandingkan dengan bilangan bulat?
— pajonk

2
terima kasih @pajonk - seseorang benar-benar dapat mempelajari beberapa hal di situs ini untuk membuat kode saya semakin kurang dapat dibaca;)
— mathause

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)))')

Menentukan makro fyang mengambil vdan a, dan memperluas ke output yang benar. Sebagian besar program merupakan implementasi dari plafon.


2

dc, 110 108 104 98 byte

Ini adalah doozy karena mengiris bukanlah hal. Juga, dc tidak memanipulasi string. Saya hanya benar-benar menunggu satu string yang akan <5 jam coding. Di sisi positifnya, saya akhirnya mulai menulis konstruksi umum, seperti untuk loop. Juga harus merumuskan pembulatan / langit-langit, jadi terima kasih untuk itu.

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

Dipanggil dalam 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:
**
>> 

Mengganti (di atas) dengan kode, dan vdan adengan rekan masing-masing di atas. Kutipan tunggal itu penting (jika tidak Anda mendapatkan barang-barang sejarah bash).


Dijelaskan:

[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

Ini mungkin lebih mampu golf, tetapi saya mencoba menyelesaikannya untuk menghindari pengoptimalan prematur.

  • 2 byte disimpan dengan menyimpan duplikat bukannya menyimpan-memuat
  • 4 byte yang disimpan dibagi dengan 70
  • 6 byte dari saran daniero (bukan string, num ASCII; 10 => I)

[*]n=> 42P. Setiap instance dari 10dapat digantikan oleh I. []p=>IP
— daniero

2

Haskell, 35 byte

Solusi ini sama sekali berbeda dari jawaban Laikoni karena mendapatkan untuk hal sepele ini. Namun skor (untuk saat ini) persis sama.

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

Ini menghasilkan sepuluh bintang, lalu memotong beberapa. Mudah diperluas ke kesulitan sewenang-wenang dengan daftar tak terbatas.

Saya berhasil memangkas satu byte lagi. Tetapi sementara semua uji coba bekerja, ini seharusnya tidak benar secara umum.

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)])

Agak port dari jawaban JavaScript @ Neil .

Mengambil input $argsdan membaginya, lalu membaginya dengan 70, dan menambahkan .499. Karena PowerShell melakukan pembulatan bankir , ini efektif ceiluntuk dua titik desimal presisi. Jika presisi tambahan diperlukan, tempelkan sebanyak mungkin 9s tambahan yang diperlukan.

Seiring dengan 1.., ini membentuk indeks rentang menjadi string. String adalah '*'*11, yaitu'***********' . Itu menghasilkan array-char, jadi kita -joinbersama-sama kembali menjadi string. String itu ditinggalkan di pipeline dan outputnya implisit. Seperti jawaban Neil, ini secara efektif "klem" output menjadi antara 1 dan 10 bintang.

Test Suite

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

Saya tidak ingin menyalin jawaban Python 2, jadi milik saya sedikit lebih lama.

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

Disimpan 1 byte berkat Program man


Anda perlu memasukkan impor, tetapi from math import *akan menghemat beberapa byte
— NonlinearFruit

Termasuk impor ke dalam hitungan byte
— Cody

Menurut spec, 0 adalah bintang minimum, bukan 1. Juga menghemat 1 byte secara keseluruhan import*tanpa ruang.
— Program man

Ups, saya salah membaca minimum. Terima kasih atas tipnya
— Cody

1
@Programman Meskipun spec mengatakan 0 minimum, pembagian dan perkalian dari bilangan bulat non-negatif, dijamin nol! = 0, dan operator langit-langit akan membuat apa pun antara 0-1 dan membuatnya 1. Meskipun saya mengira ada bisa menjadi kasus 0 tampilan, namun 0 tampilan menyiratkan 0 jawaban, yang mengarah pada perilaku yang tidak terdefinisi (pembagian dengan 0). Mungkin terbukti bahwa 0 tidak mungkin dan bahkan tidak boleh disebutkan.
— Delioth

1

Sebenarnya, 14 byte

:70a\\u9ukm'**

Cobalah online!

Mengambil keuntungan dari kenyataan bahwa 0 tampilan dan 0 jawaban tidak mungkin, dan karenanya ceil(v/a) > 0 .

Penjelasan:

: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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.