Tulis dua fragmen kode, yang akan kita sebut s_zero dan s_one.
Program (l, n) terdiri dari l salinan s_zero dan s_one yang sesuai dengan digit n dalam biner, diisi dengan s_zero di sebelah kiri.
Misalnya, jika s_zero = foo
dan s_one = bar
maka
Program (4, 0) = foofoofoofoo
Program (4, 1) = foofoofoobar
Program (4, 2) = foofoobarfoo
dll.
Program (l, n) harus mencetak sumber Program (l, (n + 1) mod (2 ^ l)) ke standar keluar. Pada contoh di atas, foobarfoofoo
harus mencetak foobarfoobar
ketika dijalankan.
Skor Anda adalah jumlah dari panjang fragmen s_zero dan s_one
code-golf
quine
source-layout
QuadmasterXLII
sumber
sumber
Jawaban:
CJam, 29 + 29 = 58 byte
Kode 0:
1 kode:
Penjelasan
sumber
CJam, 47 + 47 = 94 byte
Kode 0:
1 kode:
Maafkan sumpah serapah itu.
Saya yakin saya masih bisa memotong beberapa byte di sana. Saya akan menambahkan penjelasan setelah saya memutuskan bahwa saya tidak dapat diganggu golf lagi.
Uji di sini.
sumber
CJam, 45 + 45 = 90 byte
The 0 Kode:
The 1 Kode:
Penjelasan segera.
Cobalah online di sini
sumber
GolfScript, 37 + 37 = 74 byte
Tidak sesingkat solusi CJam user23013 , tapi saya pikir saya tetap akan memposting ini, jika hanya untuk (sedikit) meningkatkan keragaman bahasa yang digunakan.
Solusi saya tidak secara langsung didasarkan pada salah satu solusi yang ada (dan, memang, saya belum memeriksanya secara rinci, karena saya masih belum membaca CJam dengan sangat baik), tetapi mereka semua menampilkan varian dari struktur quine dasar yang sama (
{".~"}.~
dalam GolfScript,{"_~"}_~
dalam CJam). Itu tidak terlalu mengejutkan, karena tampaknya menjadi salah satu cara paling efisien untuk menulis quine dengan muatan sewenang-wenang dalam bahasa-bahasa ini.Ada beberapa bagian dari kode ini yang tidak terlalu saya sukai, dan saya kira mungkin untuk bermain golf lebih jauh, tapi saya sudah menghabiskan terlalu banyak waktu untuk hal ini.
sumber