Berdasarkan notasi "biner, tetapi dengan dua-dua" yang disebutkan dalam video numberfile ini , tulis sebuah fungsi yang mengambil nomor tunggal sebagai input dan output semua variasi nomor itu dalam sistem "biner" di mana dua-dua diperbolehkan.
Aturan
- Kode hanya boleh berupa fungsi / metode, bukan program lengkap
- Input adalah bilangan bulat yang diteruskan sebagai parameter tunggal ke fungsi
- Output adalah semua variasi yang valid dari nomor input yang dikonversi menjadi "binary, tetapi dengan notasi dua-duanya"
- Output adalah nilai pengembalian fungsi, tetapi bisa dalam format apa pun yang nyaman selama itu jelas (misalnya, 3 int, 3 string, string yang dibatasi koma / spasi, array int, dll), pesanan tidak penting
- Jika suatu bahasa mengandung fungsi bawaan untuk mencapai hasil, bahasa tersebut tidak diizinkan
- Kode terpendek dalam byte adalah pemenangnya
Penjelasan dari output
Sebagai contoh, jika Anda melewati angka 9
, Anda dapat mengubahnya menjadi biner 1001
, tetapi jika Anda mengizinkan 2
s di setiap posisi, Anda juga bisa menuliskannya sebagai 201
(yaitu 2*4 + 0*2 + 1*1
), atau 121
(yaitu 1*4 + 2*2 + 1*1
), seperti yang ditunjukkan dalam tabel ini:
+----+----+----+----+
| 8s | 4s | 2s | 1s |
+----+----+----+----+
| 1 | 0 | 0 | 1 |
| 0 | 2 | 0 | 1 |
| 0 | 1 | 2 | 1 |
+----+----+----+----+
Jadi, jika dilewati 9
, fungsi Anda perlu mengembalikan tiga angka 1001
,, 201
dan 121
.
Format dan ketertiban tidak relevan, asalkan sudah jelas (yaitu [121,201,1001]
, "0201 0121 1001"
, ("1001","121","201")
adalah hasil yang valid ketika diberi masukan dari 9
).
Contohnya
2
=>10, 2
9
=>1001, 201, 121
10
=>1010, 210, 202, 1002, 122
23
=>2111, 10111
37
=>100101, 20101, 100021, 20021, 12101, 12021, 11221