Wyzwanie
Biorąc pod uwagę liczbę całkowitą w 32-bitowym formacie uzupełnienia do dwóch , zwraca indeks drugiej najmniej znaczącej cyfry zero w reprezentacji binarnej, gdzie indeks 0reprezentuje najmniej znaczący bit, a indeks 31reprezentuje najbardziej znaczący bit.
Jeśli nie ma drugiego zera, możesz zwrócić 0, dowolną liczbę ujemną, dowolną wartość fałszowania lub zgłosić błąd w sposób, który ma sens w twoim języku.
Jeśli wolisz, możesz użyć indeksowania 1, ale poniższe przypadki testowe będą używać indeksowania 0.
Możesz użyć liczb całkowitych bez znaku, jeśli wolisz; jeśli to zrobisz, musisz obsługiwać liczby całkowite w zakresie [0, 2^32). Jeśli używasz liczb całkowitych ze znakiem, musisz obsługiwać liczby całkowite z zakresu [-2^31, 2^31). Przypadki testowe wykorzystają tutaj liczby całkowite ze znakiem, ale należy pamiętać, że -x(podpisany) jest 2^32 - x(niepodpisany).
Przypadki testowe
0 (0b00) -> 1 1 (0b001) -> 2 10 (0b1010) -> 2 11 (0b01011) -> 4 12 (0b1100) -> 1 23 (0b010111) -> 5 -1 (0b11..11) -> Brak -2 (0b11..10) -> Brak -4 (0b11..00) -> 1 -5 (0b11..1011) -> Brak -9 (0b11..10111) -> Brak 2 ^ 31-2 (0b0111..1110) -> 31
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w każdym języku!
[0, 2^32).
0b...wejściu liczbę całkowitą lub ciąg ?
2^32-1nie powinienem wracać 33.