Objetivo
Dado um número inteiro não negativo, crie uma função que retorne a posição inicial do número dos maiores 1s consecutivos no valor binário desse número.
Quando receber uma entrada 0
, retorne 0
.
Se o número tiver várias faixas de igual comprimento, você deverá retornar a posição da última faixa.
Entrada
Um número inteiro maior ou igual a 0.
Saída
Um número inteiro calculado como explicado abaixo.
Regras
- Isso é código-golfe, então o código mais curto em bytes em cada idioma vence.
- As brechas padrão são proibidas.
Exemplos e casos de teste
Exemplo 1
- Sua função passa o número inteiro 142
- 142 é igual a 10001110 em binário
- A sequência mais longa é "111" (uma sequência de três)
- A sequência começa na posição 2 ^ 1
- Sua função retorna 1 como resultado
Exemplo 2
- Sua função passa o número inteiro 48
- 48 é igual a 110000 em binário
- A sequência mais longa é "11" (uma sequência de duas)
- A sequência começa na posição 2 ^ 4
- Sua função retorna 4 como resultado
Exemplo 3
- Sua função é passada o número inteiro 750
- 750 é igual a 1011101110 em binário
- A sequência mais longa é "111" (uma sequência de três)
- Como existem duas faixas de igual comprimento, retornamos a sequência posterior.
- A sequência posterior começa na posição 2 ^ 5
- Sua função retorna 5 como resultado
0
. Esse é um caso de teste importante.