Obbiettivo
Dato un numero intero non negativo, creare una funzione che restituisca la posizione iniziale del numero di 1 consecutivi più grandi nel valore binario di quel numero intero.
Quando viene fornito un input 0
, restituire 0
.
Se il numero ha più strisce di uguale lunghezza, è necessario restituire la posizione dell'ultima striscia.
Ingresso
Un numero intero maggiore o uguale a 0.
Produzione
Un numero intero calcolato come spiegato di seguito.
Regole
- Questo è code-golf, quindi vince il codice più breve in byte in ogni lingua.
- Sono vietate le scappatoie standard.
Esempi e casi di test
Esempio 1
- Alla tua funzione viene passato l'intero 142
- 142 è uguale a 10001110 in binario
- La sequenza più lunga è "111" (una sequenza di tre)
- La sequenza inizia nella posizione 2 ^ 1
- La tua funzione restituisce 1 come risultato
Esempio 2
- Alla tua funzione viene passato l'intero 48
- 48 è uguale a 110000 in binario
- La striscia più lunga è "11" (una striscia di due)
- La sequenza inizia nella posizione 2 ^ 4
- La tua funzione restituisce 4 come risultato
Esempio 3
- La tua funzione è passata all'intero 750
- 750 è uguale a 1011101110 in binario
- La sequenza più lunga è "111" (una sequenza di tre)
- Poiché ci sono due strisce di uguale lunghezza, restituiamo la striscia successiva.
- La sequenza successiva inizia nella posizione 2 ^ 5
- La tua funzione restituisce 5 come risultato
0
. Questo è un caso di test importante.