Цель
Учитывая неотрицательное целое число, создайте функцию, которая возвращает начальную позицию числа самых больших последовательных 1 в двоичном значении этого целого числа.
Когда дан вход 0
, вернитесь 0
.
Если число имеет несколько полос одинаковой длины, вы должны вернуть позицию последней полосы.
вход
Целое число больше или равно 0.
Выход
Целое число, рассчитанное, как описано ниже.
правила
- Это код-гольф, поэтому выигрывает самый короткий код в байтах на каждом языке.
- Стандартные лазейки запрещены.
Примеры и тестовые случаи
Пример 1
- Вашей функции передано целое число 142
- 142 равно 10001110 в двоичном
- Самая длинная полоса - "111" (полоса из трех)
- Полоса начинается с позиции 2 ^ 1
- Ваша функция возвращает 1 как результат
Пример 2
- Вашей функции передано целое число 48
- 48 равно 110000 в двоичном
- Самая длинная полоса - "11" (полоса из двух)
- Полоса начинается с позиции 2 ^ 4
- Ваша функция возвращает 4 в результате
Пример 3
- Вашей функции передано целое число 750
- 750 равно 1011101110 в двоичном
- Самая длинная полоса - "111" (полоса из трех)
- Поскольку есть две полосы одинаковой длины, мы возвращаем более позднюю полосу.
- Поздняя полоса начинается с позиции 2 ^ 5
- Ваша функция возвращает 5 как результат
0
. Это важный контрольный пример.