Mengingat dua sewenang-wenang yang tepat desimal angka 0 ≤ x < y ≤ 1, menghitung terpendek (dalam angka) biner nomor b sehingga x ≤ b < y .
Keluarkan digit biner b setelah titik biner sebagai array atau string nol dan satu. Perhatikan bahwa array kosong berarti 0,0, berdasarkan penghapusan nol trailing. Ini juga memastikan bahwa ada jawaban unik yang benar untuk rentang apa pun.
Jika Anda tidak terbiasa dengan angka pecahan biner, angka itu berfungsi seperti angka desimal:
Base 10 0.625 = 0.6 + 0.02 + 0.005 = 6 x 10^-1 + 2 x 10^-2 + 5 x 10^-3
Base 2 0.101 = 0.1 + 0.00 + 0.001 = 1 x 2^-1 + 0 x 2^-2 + 1 x 2^-3
| | |
v v v
Base 10 0.625 = 0.5 + 0 + 0.125
Built-in yang meremehkan masalah ini tidak diizinkan.
Contoh:
0.0, 1.0 -> ""
0.1, 1.0 -> "1"
0.5, 0.6 -> "1"
0.4, 0.5 -> "0111"
Kode terpendek menang.
(0.98983459823945792125172638374187268447126843298479182647, 0.98983459823945792125172638374187268447126843298479182648)
? Juga, uji kasus akan sangat membantu.