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 2s 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,, 201dan 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, 29=>1001, 201, 12110=>1010, 210, 202, 1002, 12223=>2111, 1011137=>100101, 20101, 100021, 20021, 12101, 12021, 11221