Мета
Враховуючи невід'ємне ціле число, створіть функцію, яка повертає вихідну позицію числа найбільших послідовних 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
. Це важливий тестовий випадок.