Terinspirasi oleh A014486 .
Tantangan
Diberikan input integer pada basis 10, buat representasi untuk hutan biner yang sesuai dengan input tersebut. Representasi termasuk, tetapi tidak terbatas pada, array bersarang dan string.
Bagaimana?
Ubah input menjadi biner. 1
s mewakili cabang, dan 0
s mewakili daun.
Untuk membuatnya lebih mudah dipahami, mari gunakan 834
(1101000010 dalam biner) sebagai contoh.
Kita mulai dengan digit pertama. Digit pertama adalah a 1
, jadi kami menggambar cabang:
\ / 1
atau sebagai array, {{1}}
Digit berikutnya adalah 1
, jadi kami menggambar lebih banyak cabang (kami bergerak dari kiri ke kanan):
\ / 1 \ / 1
atau sebagai array, {{1, {1}}}
Digit berikutnya adalah 0
, jadi kami menempatkan daun:
0 \ / 1 \ / 1
atau sebagai array, {{1, {1, 0}}}
Digit berikutnya adalah a 1
, jadi kami menempatkan cabang:
\ / 0 1 \ / 1 \ / 1
atau sebagai array, {{1, {1, 0, {1}}}}
Mengulangi proses, kita mendapatkan pohon berikut setelah digit ke-8:
0 0 \ / 0 1 \ / 1 0 \ / 1
atau sebagai array, {{1, {1, 0, {1, 0, 0}}, 0}}
Untuk digit yang tersisa, kami menggambar lebih banyak pohon:
Digit ke-9 adalah 0
, jadi kami menempatkan daun (aww, ini adalah pemotretan muda!)
0 0 \ / 0 1 \ / 1 0 \ / 1 0
atau sebagai array, {{1, {1, 0, {1, 0, 0}}, 0}, 0}
Ketika kita menggunakan semua digit, kita berakhir dengan ini:
0 0 \ / 0 1 \ / 1 0 0 \ / \ / 1 0 1
atau sebagai array, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0}}
Itu terlihat aneh, jadi kami membuat nol untuk melengkapi pohon:
0 0 \ / 0 1 \ / 1 0 0 0 \ / \ / 1 0 1
atau sebagai array, {{1, {1, 0, {1, 0, 0}}, 0}, 0, {1, 0, 0}}
Perhatikan bahwa mendatarkan array menghasilkan angka asli dalam biner, tetapi dengan nol yang empuk.
Kriteria
- Output harus jelas menunjukkan pemisahan pohon dan cabang (jika bukan array bersarang, tolong jelaskan format output Anda).
- Mengekstraksi semua digit dari output harus identik dengan representasi biner dari input (dengan nol yang diisi dari proses di atas).
Uji kasus
Output mungkin berbeda selama memenuhi kriteria.
0 -> {0} 1 -> {{1, 0, 0}} 44 -> {{1, 0, {1, {1, 0, 0}, 0}}} 63 -> {{1, {1, {1, {1, {1, {1, 0, 0}, 0}, 0}, 0}, 0}, 0}, 0}} 404 -> {{1, {1, 0, 0}, {1, 0, {1, 0, 0}}}} 1337 -> {{1, 0, {1, 0, 0}}, {1, {1, {1, 0, 0}, {1, 0, 0}}, 0}}
Mencetak gol
Ini adalah kode-golf , sehingga byte terendah menang!