Boneka bersarang Rusia, lebih dikenal sebagai boneka Matryoshka , adalah boneka yang berisi versi dirinya yang lebih kecil, yang kemudian berisi versi dirinya yang lebih kecil, yang berisi versi dirinya yang lebih kecil, yang berisi versi dirinya yang lebih kecil, yang berisi versi yang lebih kecil dari dirinya sendiri ... - sampai akhirnya, yang terakhir kosong. Sebuah contoh:
Hari ini tujuan Anda adalah untuk meniru tradisi Rusia ini dengan menulis sebuah program atau fungsi yang, ketika mengandung dirinya sendiri N kali, akan mencetak dirinya sendiri yang berisi N-1 salinan waktu itu sendiri.
Misalnya, program boneka abcd
akan memiliki program N = 3 abababcdcdcd
, yang akan mencetak program N = 2 ababcdcd
, yang mencetak program N = 1 asli abcd
, yang akhirnya mencetak N = 0, yang kosong. Secara teori ini harus bekerja untuk nilai N. apa pun yang masuk akal
Aturan:
- Berikut adalah program TIO untuk membantu menghasilkan program boneka berdasarkan program Anda
- Aturan Quine Standar berlaku
- Berlaku celah standar
- 'Berisi' berarti langsung di tengah versi sebelumnya, jadi solusi Anda harus memiliki jumlah genap positif. Suatu program dengan panjang 10 akan memiliki salinan aslinya dimasukkan setelah byte kelima, kemudian yang lain setelah byte kesepuluh dll.
- Spasi tunggal trailing diperbolehkan dalam output
- Karena ini adalah kode-golf , tujuan Anda adalah membuat program N = 1 Anda sesingkat mungkin.
- Penjelasan kode Anda akan dihargai
sumber
N
ukuran kode diukur?Jawaban:
Underload , 4 byte
N = 1: Cobalah secara online.
N = 2: Coba online.
N = 3: Cobalah online.
Penjelasan:
Cukup jelas, tetapi saya tetap menambahkannya.
(...)S
mencetak apa saja di antara tanda kurung ke STDOUTsumber
JavaScript,
3632 byteMengambil keuntungan dari fakta yang
Function.prototype.toString()
tidak membutuhkan argumen dan karena itu akan mengabaikan apa pun yang diteruskan ke sana.Sebagian terinspirasi oleh solusi user202729 .
Cobalah
sumber
JavaScript (Node.js) , 46 byte
Program lengkap. Jadi
console.log
itu perlu.Gunakan ide dari jawaban ini untuk menyimpan beberapa byte.
Cobalah online! Cobalah online dua kali! Coba online, tiga kali!
Pendekatan saya mirip dengan yang digunakan dalam jawaban Kevin Cruijssen , temukan struktur bersarang (fungsi dalam kasus ini).
sumber
Jelly , 16 byte
Cobalah online!
Gandakan: Coba online!
Tiga Kali Lipat: Coba online!
Jelly tidak memiliki struktur sarang, tetapi string stringnya diakhiri secara otomatis.
Akan mencoba pendekatan yang berbeda untuk melihat apakah mereka bisa lebih pendek.
sumber
DipDup , 2 byte
Ini mendorong daftar ke tumpukan, dan mencetaknya tanpa tanda kurung.
N = 1: Coba online!
N = 2: Coba online!
N = 3: Coba online!
sumber
dc , 4 byte
Mirip dengan beberapa jawaban lain, karena string
dc
sudah mulai ([
) dan akhir (]
) pembatas (yaitu,"
tidak melakukan kedua tugas, dll.), Mereka bersarang tanpa upaya nyata.p
untuk mencetak.N = 1: Coba online!
N = 2: Cobalah bersarang!
N = 3: Cobalah nesteder!
sumber
Tcl , 12 byte
Cobalah online!
Ini hanyalah bahasa lain yang juga memiliki ini.
sumber