Um número inteiro positivo pode ser diluído inserindo um 0
entre dois bits em sua expansão binária. Isso significa que um n
número de bits possui n-1
diluições, que não são necessariamente todas distintas.
Por exemplo, para 12
(ou 1100
em binário), as diluições são
11000 = 24
^
11000 = 24
^
10100 = 20
^
Neste desafio, tomaremos a soma de todas as diluições, excluindo o número original. Pois 12
, considerando a soma dos 24, 24, 20
resultados 68
, 68
deve ser a saída para 12
.
Desafio
Dado um número inteiro positivo n > 1
como entrada, produza / retorna a soma diluída conforme explicado acima.
Exemplos
in out
--- ---
2 4
3 5
7 24
12 68
333 5128
512 9216
Regras
- Pode-se presumir que a entrada e a saída se encaixam no tipo inteiro nativo do seu idioma.
- A entrada e saída podem ser fornecidas em qualquer formato conveniente .
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.