Buat implementasi FizzBuzz sesingkat mungkin yang sesingkat mungkin.
Untuk dianggap dikaburkan, itu harus memenuhi setidaknya satu dari yang berikut:
- Tidak mengandung kata "Fizz", "Buzz", atau "FizzBuzz"
- Tidak mengandung angka 3, 5, atau 15.
- Gunakan salah satu di atas dengan cara yang menyesatkan.
Ingat: Tujuannya adalah menjadi singkat dan sulit untuk diikuti.
Contoh kode yang menginspirasi pertanyaan ini adalah sebagai berikut:
public class Default
{
enum FizzBuzz
{
Buzz = 1,
Fizz,
FizzBuzz
}
public static void Main(string[] args)
{
byte[] foo =
Convert.FromBase64String("IAmGMEiCIQySYAiDJBjCIAmGMEiCIQySYA==");
MemoryStream ms = new MemoryStream(foo);
byte[] myByte = new byte[1];
do
{
FizzBuzz fb;
ms.Read(myByte, 0, 1);
for (int i = 0; i < 4; i++)
{
fb = (FizzBuzz)(myByte[0] >> (2 * i)
& (int)FizzBuzz.FizzBuzz);
Console.Out.WriteLine( (((int)fb > 0) ? "" + fb : ""
+ ((ms.Position - 1) * 4 + i + 1)));
}
} while (ms.Position < ms.Length);
}
}
code-golf
obfuscation
restricted-source
mootinator
sumber
sumber
Jawaban:
GolfScript,
7569656059 karakterJadi, Anda akan berpikir GolfScript dengan sendirinya sudah dikaburkan, bukan? Nah, hanya untuk mengikuti spek, saya memutuskan agar program tidak mengandung "fizz", "buzz", atau angka 3, 5, atau 15. :-)
Ya, ada beberapa angka dengan kelipatan 5, seperti 25, 35, 90, 100, dan 6875. Apakah itu ikan haring merah? Kamu putuskan. ;-)
sumber
Javascript 97 karakter - tidak ada angka sama sekali
Angka? Siapa yang butuh nomor ketika Anda memiliki Javascript!
Catatan: Ada loop tak terbatas yang akan memberi tahu Anda urutannya.
Bonus (666 karakter)
(hanyazfor
digunakan dalam keseluruhan skrip).
sumber
z
.+!![]
sama dengan1
dan({}+"")[5]
sama denganc
) dan penyalahgunaan notasi array untuk mengakses metode (mis .:window['eval'](
samaeval(
).Python - 78 karakter
sumber
PostScript, 96 byte
Jadi dikaburkan seperti sampah acak.
Pemakaian:
$ gs -q -dNODISPLAY -dNOPROMPT file.ps
sumber
C ++: 886 karakter
Saya sudah mencoba menyembunyikan 'desis' dan 'desas-desus'. Bisakah Anda menemukannya?
sumber
DC (
256255 byte)Ini dia, saya mencoba (agak berhasil, jika saya bisa mengatakannya sendiri) untuk menyembunyikan apa pun kecuali untuk surat, dan
+-[];:=
(yang penting dan tidak mungkin dikaburkan). Memang segfault setelah mencapai sekitar 8482 atau lebih pada mesin saya, tapi itu berkaitan dengan masalah tumpukan yang terkait dengan cara rekursi diimplementasikan. Solusinya sendiri sudah benar. 255 byte jika Anda menghapus spasi putih (termasuk untuk kemudahan membaca) Nikmati:sumber
Ini agak sulit untuk ditanamkan menggunakan lekukan jadi intinya:
Ruby, 4312 karakter
https://gist.github.com/dzucconi/1f88a6dffa2f145f370f
sumber
Brainfuck -
626656Mulai dari 1 hingga 255
sumber
Brainfuck, 708 karakter
Deskripsi cara kerjanya tersedia di pertanyaan Tinjauan Kode saya
sumber
Haskell -
147142138 karakterKode ini 19 karakter lebih panjang dari yang seharusnya, tapi saya pikir estetika itu sepadan! Saya percaya ketiga "tujuan" tersebut dipenuhi.
sumber
zZ' is applied to six arguments, but its type
(a0 -> b0 -> c0) -> [a0] -> [b0] -> [c0] 'hanya memiliki tiga["1","2","3","4","5","6"...]
.bu
,fi
,zz
, danzZ
. Ini bisa disingkat menjadi satu nama huruf.πΌππππ, 33 karakter / 92 byte (tidak kompetitif)
Try it here (Firefox only).
Bahasa ini terlalu OP untuk tantangan sumber terbatas.
sumber
Javascript, 469 byte
Ini mungkin yang paling menyenangkan yang pernah saya miliki.
Coba di sini
sumber
Ruby - 165 karakter
Ini adalah upaya pertama saya di kode golf. Saya bersenang-senang. =)
sumber
Perl 6 (52 byte)
Biarkan saya memberikan penjelasan di sini. Ini adalah penyalahgunaan aturan terburuk yang pernah saya lakukan dalam tugas seperti itu. Saya tahu apa yang Anda katakan - ada yang jelas
Fizz
dan diBuzz
sini. Tapi mari kita lihat peraturannya.Ini menghindari
3
,5
dan15
. Oleh karena itu, ini solusi yang valid dan sangat singkat.sumber
Scala, 295 karakter
sumber
C (
237209 karakter)Meskipun saya tidak yakin ini sesuai dengan standar C :) Tapi
itu berhasil. Di Linux menggunakan GCC, yaitu.
sumber
Python 3 - 338
Ini golf pertama saya. Bukan yang terpendek, tapi itu sangat jelek! Tidak ada angka terlarang atau string literal. Firp, Bersendawa!
sumber
Python - 157
Bukan yang terpendek, tapi saya harap pembaca akan menghargai gaya fungsional murni dan ekstensibilitas untuk jumlah panjang yang sewenang-wenang.
sumber
K, 155
Saya bisa bermain golf sedikit tapi saya lebih suka itu lebih dikaburkan.
sumber
Python 2 - 54 karakter
Python 3 - 56 karakter
Jika Anda tidak ingin 'FizzBuzz' muncul:
Python 2 - 58 karakter
Python 3 - 60 karakter
Atau cara mengalahkan GolfScript dengan Python;)
sumber
i=0
cara tersebutwhile
loop tidak pernah masuk.i<20
.JavaScript 111 karakter - tidak ada nomor kunci
a=b=c=0;while(a++<99)document.write((b>1?(b=0,"Fizz"):(b++,""))+(c==4?(c=0,"Buzz"):(c++,""))+(b*c?a:"")+"<br>")
sumber
C # - 218 karakter
Dapat dipersingkat jika saya memperkenalkan nomor lain seperti: (total 210 karakter)
Memutuskan untuk menghapus kata fizz dan buzz jelas dan pergi untuk kebingungan sedikit lebih. Yang kedua lebih pendek dari yang pertama tetapi sedikit lebih langsung pada apa yang terjadi di samping.
sumber
Ini bukan golf, itu sekitar 120 baris.
Saya pikir saya akan melakukan sesuatu yang memanfaatkan semua potensi kesenangan untuk perilaku yang tidak terdefinisi dengan manajemen memori C ++.
sumber
Ruby - 89 karakter
Saya tidak dapat mengambil kredit untuk kecemerlangan ini, tetapi saya tidak dapat meninggalkan pertanyaan ini tanpa implementasi favorit saya yang dikaburkan :)
Implementasi di atas ditulis oleh David Brady dan berasal dari permata ruby fizzbuzz . Berikut ini penjelasan dari kode sumber:
Ruby - 87 karakter
Berikut adalah versi berbeda yang menggunakan seed yang lebih pendek tetapi tabel pencarian dalam urutan yang berbeda. Berikut ini penjelasan dari kode sumber:
sumber
Python, 1 baris, 376 karakter
pep8-E501 diabaikan. Hanya berfungsi di python3.
sumber
Ruby Alternatif (126 karakter)
Pendek dan tidak jelas, betapa kita menyukainya. Angka 3 dan 5 sebenarnya ada di sana tetapi tidak sebagai bilangan bulat jadi saya pikir itu masih diperhitungkan.
Perhatikan bahwa ini adalah versi Ruby terpendek tanpa 'Fizz' literal, 'Buzz', 'FizzBuzz' di sini.
sumber
Mencicit (4.4) Smalltalk 206 byte
Atau algoritma yang sama dengan pesan yang kurang eksplisit, jumlah karakter yang sama
Saya meminta maaf kepada Alan Kay atas apa yang saya lakukan pada Smalltalk.
Beberapa peretasan ini bersifat portabel di seluruh dialek Smalltalk, beberapa akan membutuhkan lapisan kompatibilitas ...
Perhatikan bahwa jika Anda mengeksekusi di Workspace, Anda bisa menghilangkan deklarasi | fi zz buz | dan dapatkan 14 karakter.
Jika kita mampu membeli 357 karakter (315 dengan vars huruf tunggal), maka lebih baik untuk menghindari hal-hal sepele #to: do: loop:
sumber
Haskell 226 byte, termasuk spasi untuk tata letak;)
Kode 'nyata' adalah 160 byte dan dapat dikompresi, tetapi kehilangan fizz-buzz-ness saat itu.
Jalankan (untuk hasil yang bagus):
Keluaran:
sumber
Perl
Yang saya buat tahun 2009. Tapi cukup mudah untuk menemukan jawabannya.
Sunting: Sial, ini menggunakan "Fizz" dan "Buzz!" :( Saya pikir saya mengubahnya. Namun kemudian.
sumber
C 216 byte
sumber