Tambang garam Polandia tertua , yang terletak di Bochnia *, dimulai pada tahun 1248, yang dapat kita anggap sebagai angka ajaib . Kita bisa melihat bahwa itu sama dengan 4 digit dari urutan eksponensial: .
Karena tanggal sebenarnya 4 digit dari urutan, kita bisa membuatnya lebih lama. Kita bisa mengulangi prosesnya sampai kita mencapai tak terbatas. Urutannya akan terlihat seperti ini, jika kita batasi jumlahnya2048
124816326412825651210242048
Agar terlihat sedikit lebih baik, kita dapat memisahkan angka:
1|2|4|8|16|32|64|128|256|512|1024|2048
Mari kita coba urutan khusus yang lebih panjang dari tanggal. Katakanlah, kami ingin memiliki 5 digit - ada lebih dari satu kemungkinan:
24816
81632
64128
Atau 3 digit:
124
248
816
Kita juga bisa menambahkan angka 3 digit ini, tetapi katakanlah, bahwa suatu urutan harus memiliki setidaknya dua angka .
* Tidak ada informasi tentang ini di Wikipedia bahasa Inggris. Jika Anda memasukkan versi Polandia - maka ada. Jika Anda mengunjungi tambang, para pekerja juga akan memberi tahu Anda, bahwa itu dimulai pada 1248.
Tantangan
Buat urutan eksponensial seperti pada contoh di atas dengan 2 sebagai dasarnya.
Diberi angka dari rentang 2-27, output semua bagian yang mungkin dari urutan (2048 satu atau lebih besar jika Anda mau) dengan jumlah digit yang sama dengan input. Anda tidak dapat memotong angka, jadi hasilnya seperti481
tidak valid, karena 16 dipotong setengah.
Aturan:
- Celah standar dilarang.
- Anda dapat berasumsi bahwa input adalah angka di dalam rentang.
- Program Anda dapat menerima input yang lebih besar dari kisaran (28+), tetapi itu tidak akan menambah / menurunkan skor.
- Spasi dalam output diabaikan. Anda dapat menampilkan suka
124
atau suka4 8 16
. - Kemungkinan yang berbeda harus dipisahkan oleh karakter apa pun dari daftar:
,./|
atau umpan baris. - Anda dapat menampilkan sebagai array.
- Setiap kemungkinan harus menyertakan setidaknya 2 nomor yang berbeda .
- Anda harus menampilkan bagian dari urutan, Anda tidak dapat mencampur angka yang tidak bersebelahan, seperti:
14
. - Output hardcoded tidak diizinkan, namun, Anda dapat membuat hardcode string / angka / array yang berisi urutan penuh.
- Input 27 harus mengembalikan urutan 2048 penuh.
- Seperti yang sudah disebutkan sebelumnya, jangan potong angka . Ex.
16
harus tetap16
- Anda tidak dapat menggunakan481
- Anda harus menggunakan4816
. - EDIT: Saya mungkin mengatakan sesuatu yang salah di sana; 2048 adalah angka terakhir yang harus didukung oleh program Anda, Anda dapat menambahkan dukungan untuk int yang lebih besar.
Uji kasus
Memasukkan: 2
12, 24, 48
Memasukkan: 3
124, 248, 816
Memasukkan: 4
1248, 4816, 1632, 3264
Memasukkan: 5
24816, 81632, 64128
Memasukkan: 27
124816326412825651210242048
Dan kemudian angka ...
Jika saya membuat kesalahan dalam salah satu kasus uji, katakan padaku atau edit pertanyaannya.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!