introduzione
Questa sfida richiede di impostare gli zeri finali di una rappresentazione binaria di numeri interi su 010101…
, questo è meglio spiegato con un esempio:
Dato il numero intero 400
, il primo passo è convertirlo in binario:
110010000
Come possiamo vedere il quinto bit è il bit meno significativo 1
, quindi a partire da lì sostituiamo gli zeri inferiori con 0101
:
110010101
Alla fine lo riconvertiamo in decimale: 405
Sfida
Dato un ritorno / output intero positivo il corrispondente valore risultante del processo sopra definito.
Regole
- Questa sequenza è definita solo per numeri interi con almeno un
1
bit, quindi l'ingresso sarà sempre ≥ 1 - È possibile invece inserire input come stringa, elenco di cifre (decimale)
- Non è necessario gestire input non validi
Casi test
Ecco alcuni altri test con i passaggi intermedi (non è necessario stamparli / restituirli):
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
è la potenza massima di 2 che divide l'input, allora la risposta è semplicemente(input) + ceil((2^n - 2)/3)