inspirado pela contagem regressiva do infinito
Dado um número inteiro não negativo N
, imprima o número de repetições das seguintes etapas necessárias para atingir 0:
- Converta
N
em binário (4812390 -> 10010010110111001100110
) - Virar cada bit (
10010010110111001100110 -> 01101101001000110011001
) - Cortar zeros à esquerda (
01101101001000110011001 -> 1101101001000110011001
) - Converter de volta para decimal (
1101101001000110011001 -> 3576217
)
Regras
- Entrada e saída podem estar em qualquer formato inequívoco e consistente
- A entrada estará dentro do intervalo inteiro representável nativo do seu idioma (se o seu idioma suportar números inteiros arbitrariamente grandes, não haverá limite)
Casos de teste
0 -> 0
1 -> 1
42 -> 6
97 -> 3
170 -> 8
255 -> 1
682 -> 10
8675309 -> 11
4812390 -> 14
178956970 -> 28
2863311530 -> 32
Essa sequência é A005811 no OEIS.
~(~a) == a