Kita semua pernah mendengar tentang masalah Fizz Buzz, tetapi apa yang terjadi ketika Anda mencoba menerapkannya dengan lebih banyak faktor? Fizz Buzz Crackle Pop!
Tantangan
Tulis program lengkap yang mengambil input integer n , lalu n tupel yang berisi integer dan string, lalu integer lain (> 1) k, dengan demikian:
n int1 str1 int2 str2 (...) intn strn k
Anda dapat mengambil baris ini dari baris perintah atau STDIN.
Kemudian, untuk semua bilangan bulat 1 hingga k, jika itu dapat dibagi oleh salah satu dari int1 , int2 ... intn , output semua str yang sesuai dalam urutan input, diikuti oleh baris baru. Jika tidak, maka cukup output integer, diikuti oleh baris baru.
Misalnya dengan input
3 2 Fizz 3 Buzz 5 Crackle 10
kita mendapatkan
1
Fizz
Buzz
Fizz
Crackle
FizzBuzz
7
Fizz
Buzz
FizzCrackle
Tetapi dengan input (perhatikan perubahan pesanan)
3 3 Buzz 2 Fizz 5 Crackle 10
kita mendapatkan
1
Fizz
Buzz
Fizz
Crackle
BuzzFizz
7
Fizz
Buzz
FizzCrackle
Newline tambahan opsional dapat diterima.
Kode terpendek dalam byte menang.
Suntingan:
Jelas saya sangat ketinggalan, maaf.
- Input dari
konsol dan STDIN, yang lainnya mendapat +5 byte (: c) dimana saja - Program lengkap, silakan.
- Asumsikan string tidak kosong untuk strs
- Tidak ada jaminan untuk keunikan int
Contoh program C ++ (terbatas pada 20 karena saya malas):
#include <iostream>
#include <string>
using namespace std;
int main() {
string names[20];
int mods[20], n, max;
cin >> max >> n;
for (int i=0; i<n; i++) {
cin >> mods[i] >> names[i];
}
for (int i=1; i<=max; i++) {
bool found = false;
for (int j=0; j<n; j++) {
if (i % mods[j] == 0) {
found = true;
cout << names[j];
}
}
if (!found)
cout << i;
cout << endl;
}
return 0;
}
Generalized Fizz Buzz
.Jawaban:
05AB1E , 28 byte
Cobalah online!
Atau dengan format input berbeda:
05AB1E , 16 byte
Cobalah online!
sumber
JavaScript (ES6), 90 byte
Menghasilkan baris baru terkemuka.
Uji
Tampilkan cuplikan kode
sumber
Python 2 , 98 byte
Cobalah online!
sumber
C ++, 194 byte
Tidak Disatukan:
sumber
x%atoi(a[i])
tidak bisa negatif, maka cukup periksax%atoi(a[i])<1
.p'\n'
:)PHP, 99 byte
Berdasarkan pada jawaban FizzBuzz primo :
õ
is chr (245), baris baru sedikit terbalik.mengabaikan argumen pertama; jalankan bersama
-nr
.sumber
JavaScript (ES6),
10597 byteMengambil dalam peta pasangan m (integer, string) dan integer k . Hadir dengan baris baru yang tertinggal.
Berikut adalah versi non-rekursif (105 byte), tetapi tidak menghasilkan baris tambahan.
Cobalah online!
sumber
Java, 331 byte
Karena jawa
Ini adalah kelas penuh yang diperlukan untuk ini. Namun, untuk menjalankannya, Anda harus memanggil metode
x
pada instance yang adaA
. Demi pengujian, saya telah menyediakan kelas runnable command-line di bawah ini, yang sebagian tidak dipisahkan.sumber
ditumpuk , 85 byte
Cobalah online! Atau, 86 byte:
sumber
dc , 121 byte
Mengambil input pada 3 baris terpisah, baris pertama berisi bilangan bulat
n
, yang kedua menampungint str
tupel dengan string yang terlampir dalam tanda kurung siku ([]
), dan baris ketiga terdiri dari bilangan bulatk
. Misalnya,3 2 Fizz 3 Buzz 5 Crackle 10
bisa dimasukkan sebagai:Cobalah online!
Atau mengambil input dalam urutan berbeda:
dc , 118 byte
Ini membutuhkan input dalam urutan yang berbeda, tetapi pada satu baris dalam format
Misalnya,
3 2 Fizz 3 Buzz 5 Crackle 10
akan dimasukkan sebagai:Cobalah online!
sumber