Dado dois números decimais arbitrariamente precisos 0 ≤ x < y ≤ 1, calcule o número binário mais curto (em dígitos) b de modo que x ≤ b < y .
Emita os dígitos binários de b após o ponto binário como uma matriz ou uma sequência de zeros e uns. Observe que a matriz vazia significa 0,0, devido à exclusão de zeros à direita. Isso também garante que haja uma resposta correta exclusiva para qualquer intervalo.
Se você não estiver familiarizado com números fracionários binários, eles funcionam como números decimais:
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
Os internos que trivializam esse problema não são permitidos.
Exemplos:
0.0, 1.0 -> ""
0.1, 1.0 -> "1"
0.5, 0.6 -> "1"
0.4, 0.5 -> "0111"
O menor código vence.
(0.98983459823945792125172638374187268447126843298479182647, 0.98983459823945792125172638374187268447126843298479182648)? Além disso, os casos de teste seriam úteis.