Tantangan
Memasukkan:
Bilangan bulat antara 2 dan 62 (inklusif).
Keluaran:
Hitung dari hingga ekuivalen dalam basis , menggunakan representasi yang masuk akal untuk digit.
Namun:
Jika angkanya dapat dibagi dengan (dibulatkan ke bawah, mis. Basis 7 akan menjadi 7/2 = 3,5, 3,5 + 1 = 4,5, dibulatkan menjadi 4 ), maka keluaran 'Fizz' bukan angka.
Jika nomor habis dibagi (dibulatkan, misalnya 11/3 = 3,666, 3,666 + 3 = 6,666, dibulatkan menjadi 7 ), maka output 'Buzz'.
Seperti yang Anda mungkin bisa menebak, jika nomor Anda dapat dibagi oleh keduanya, output 'Fizzbuzz'.
Contohnya
Menggunakan [0-9] , [AZ] dan [az] sebagai digit
(Saya hanya menyertakan 10 nilai pertama untuk menjaga contoh singkat - biasanya ada 4990 lebih banyak item di setiap urutan)
Input: 10 (jadi 'Fizz' = 6 dan 'Buzz' = 7)
Output: 1, 2, 3, 4, 5, Fizz, Buzz, 8, 9, 10
Input: 2 (jadi 'Fizz' = 2 dan 'Buzz' = 4)
Output: 1, Fizz, 11, Fizzbuzz, 101, Fizz, 111, Fizzbuzz, 1001, Fizz
(Saya sudah memasukkan 50 nilai pertama berikut ini untuk lebih menunjukkan cara kerjanya)
Input: 55 (jadi 'Fizz' = = dan 'Buzz' = = )
Output: 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, Buzz, n, o, p, q, r, Fizz, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N
Aturan
- Celah standar dilarang
- Ini Golf Code, jadi jawaban tersingkat dalam byte menang
- Input dan output dapat melalui konsol, atau argumen fungsi / pengembalian
- Leading / trailing white space baik-baik saja, seperti halnya baris kosong
- Spasi antara 'Fizz' dan 'Buzz' tidak diizinkan
- Varian kapitalisasi 'Fizz' / 'Buzz' / 'Fizzbuzz' baik-baik saja.
- Keluaran harus dipisahkan oleh baris baru.
- Jika Anda mengembalikan array 'digit' 10 basis alih-alih mewakili mereka dengan karakter, maka mereka harus berada dalam urutan yang benar!
buzz
muncul dengan sendirinya di index553391
,fizz
at724463
, danfizzbuzz
at1216820199599
. Sayangnya, tidak ada dari mereka yang dapat dibagi dengan angkaJawaban:
Jelly ,
42 38 34 33 2932 byte+3 untuk mematuhi aturan pemformatan yang ketat
Sebuah program penuh yang mencetak 5000 baris teks, setiap baris berisi serangkaian bilangan bulat (angka) atau salah satu dari
fizz
,buzz
ataufizzbuzz
(bekerja dengan baik di luar basis 62).Cobalah online!
Bagaimana?
memperbarui ...
sumber
Arang , 40 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
sumber
R ,
163131 byteCobalah online!
Terima kasih kepada @digEmAll untuk menghemat 23 byte. Saya kemudian melanjutkan upaya-upaya golf @ digEmAll untuk menyimpan lebih lanjut 9.
sumber
JavaScript (ES6),
117116 byteCobalah online!
(terbatas pada 100 sehingga output TIO tidak meledak)
sumber
|0
dan apa yang harus(5e3)
dilakukan?Math.floor(n)
5e3
5000
Python 2 , 116 byte
Cobalah online!
Atau dengan
0-9a-zA-Z
output:Python 2 , 143 byte
Cobalah online!
sumber
05AB1E ,
393736 byte-2 byte dengan membuat port dari jawaban Jelly @ JonathanAllan .
Cobalah secara online atau verifikasi semua kasus uji (tetapi sebagai daftar-keluaran dan dengan 100 yang pertama, bukan 5000).
Penjelasan:
Lihat ini ujung 05AB1E saya (bagian Cara menggunakan kamus? ) Untuk memahami mengapa
”FizzÒÖ”
adalah"Fizz Buzz"
.sumber
[input, input+8]
bagian, dan bagian filter sesudahnya (yang sekarang saya lakukanDõQi yIв
, tapi saya merasa bisaPerl 6 , 91 byte
Cobalah online!
Blok kode anonim yang mengembalikan daftar string
Fizz/Buzz/FizzBuzz
atau daftar bilangan bulatterbalikdi pangkalan.sumber
R , 138 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) ,
180171 byteKeluaran seperti jawaban Arnauld. Berkat digEmAll untuk ide menggunakan stack untuk membalikkan output.
Cobalah online!
sumber
05AB1E , 34 byte
Menggunakan wawasan matematika Jonathan yang
ceil(n/3+3)
=floor((n+8)//3)+1
Cobalah online!
Penjelasan
sumber