Dados dos números decimales arbitrariamente precisos 0 ≤ x < y ≤ 1, calcule el número binario más corto (en dígitos) b tal que x ≤ b < y .
Imprima los dígitos binarios de b después del punto binario como una matriz o una cadena de ceros y unos. Tenga en cuenta que la matriz vacía significa 0.0, en virtud de eliminar ceros finales. Esto también asegura que haya una respuesta correcta única para cualquier rango.
Si no está familiarizado con los números fraccionarios binarios, funcionan igual que los números decimales:
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
Las incorporaciones que trivializan este problema no están permitidas.
Ejemplos:
0.0, 1.0 -> ""
0.1, 1.0 -> "1"
0.5, 0.6 -> "1"
0.4, 0.5 -> "0111"
El código más corto gana.
(0.98983459823945792125172638374187268447126843298479182647, 0.98983459823945792125172638374187268447126843298479182648)
? Además, los casos de prueba serían útiles.