Introducción
Este desafío requiere que establezca los ceros finales de una representación binaria entera 010101…
, esto se explica mejor con un ejemplo:
Dado el entero 400
, el primer paso es convertirlo a binario:
110010000
Como podemos ver, el quinto bit es el bit menos significativo 1
, por lo que a partir de ahí reemplazamos los ceros inferiores por 0101
:
110010101
Finalmente convertimos eso a decimal: 405
Desafío
Dado un retorno / salida entero positivo, el valor resultante correspondiente del proceso definido anteriormente.
Reglas
- Esta secuencia solo se define para enteros con al menos un
1
bit, por lo que la entrada siempre será ≥ 1 - En su lugar, puede tomar la entrada como una cadena, lista de dígitos (decimal)
- No tiene que manejar entradas inválidas
Casos de prueba
Aquí hay más casos de prueba con los pasos intermedios (no es necesario imprimirlos / devolverlos):
In -> … -> … -> Out
1 -> 1 -> 1 -> 1
2 -> 10 -> 10 -> 2
3 -> 11 -> 11 -> 3
4 -> 100 -> 101 -> 5
24 -> 11000 -> 11010 -> 26
29 -> 11101 -> 11101 -> 29
32 -> 100000 -> 101010 -> 42
192 -> 11000000 -> 11010101 -> 213
400 -> 110010000 -> 110010101 -> 405
298 -> 100101010 -> 100101010 -> 298
n
es la potencia máxima de 2 que divide la entrada, entonces la respuesta es simplemente(input) + ceil((2^n - 2)/3)