Membuat printer integer serba guna bagus dan semuanya, tetapi menulis kode tunggal yang mencetak banyak angka berbeda merupakan hal yang rumit. Bukankah lebih mudah membuat skrip yang menghasilkan angka, tetapi juga memberi Anda skrip baru untuk mendapatkan nomor berikutnya?
Tantangan:
Tulis kode yang menampilkan bilangan bulat tunggal N
dan kode yang dapat dieksekusi. Kode selanjutnya harus di-output N+1
dan kode yang bisa di-output N+2
. Lanjutkan jalur ini sampai Anda mencapai N = 15
. (Nomor yang dicetak terakhir harus 15).
Aturan:
- Tidak ada input (anggap input kosong).
- Program atau fungsi lengkap atau format lain yang nyaman diizinkan.
- Kode pertama harus ditampilkan
1
. - Anda tidak dapat menampilkan nol di depan. Yaitu Anda tidak dapat mencetak
01
untuk1
. - Output harus dalam format
N, Code_for_N+1
. Perhatikan bahwa output dipisahkan oleh koma dan spasi tunggal. Kode untukN+1
tidak memiliki tanda kutip di sekitarnya.N , Code_for_N+1
tidak diterima (spasi di depan koma). Mengejar baris baru tidak masalah. - Karakter pertama dari output harus berupa angka. (Tidak ada spasi, atau
ans = N
). - Nomor yang dicetak tidak boleh menjadi bagian dari kode berikutnya (kode dapat berisi nomor ini, tetapi Anda tidak dapat mengambil nomor output sebagai bagian dari kode)
- Contoh: Output untuk
N=2
dapat:2, printer 2
. Dalam hal ini,printer 2
adalah kode untukN=3
. Anda tidak dapat menggunakan seluruh output:2, printer 2
sebagai kode untukN=3
.
- Contoh: Output untuk
- Skrip mungkin dalam berbagai bahasa
- Tipe data tidak relevan (angka dapat berupa string), tetapi tidak dapat dikelilingi oleh apa pun (tanda kutip, tanda kurung dll).
- Jika ada kode yang di-output
N=15
maka ia harus mencetakSTOP!
(lihat bonus), atau tidak mencetak apa pun (bahkan spasi atau baris baru).- Kode untuk
N=15
tidak bisa crash (tetapi keluaran ke STDERR tidak masalah). - Anda didiskualifikasi jika kode output untuk
N=15
dicetak16
atau apa pun (kecuali kotak bonus).
- Kode untuk
- Operator quine bawaan tidak diizinkan.
- Mengakses file sumber melalui sistem file tidak diperbolehkan.
Bonus:
-10 byte jika kode yang mencetak 15 juga menghasilkan kode yang mencetak " STOP!
"
Contoh menggunakan sintaks Python: (jelas, ini hanya akan bekerja untuk bilangan bulat yang dipilih, bukan dari 1 hingga 15.)
N = 1
print "1, print 2"
1, print 2
---
N = 15
print 15
15
---
N = 15 (Qualifies for the -10 bytes bonus)
print "15, print 'STOP!'"
15, print 'STOP!'
print 'STOP!'
STOP!
----
N = 15 (Qualifies for the -10 bytes bonus)
print "15, disp('STOP!')"
15, disp('STOP!') (disp('STOP!') outputs STOP! in MATLAB)
----
N = 15 (This one is not OK. The submission is disqualified)
print "15, print 16"
15, print 16
Aturan main golf standar berlaku! Kode terkecil (untuk N = 1) dalam byte menang!
14, print(14+1)
atau tidak?
f=>f+""
apakah tidak valid? (f+""
mengembalikan kode konstruksi fungsi.)