Вдохновлен четвертой проблемой от BMO2 2009 .
Учитывая положительный целое число п в качестве входных данных или параметра, возвращает количество положительных целых чисел, двоичное представление встречается в виде блоков в двоичном разложении п .
Например, 13 -> 6, потому что 13 в двоичном виде - это 1101, и у него есть подстроки 1101, 110, 101, 11, 10, 1
. Мы не считаем двоичные числа, которые начинаются с нуля, и мы не учитываем сам ноль.
Тестовые случаи
13 -> 6
2008 -> 39
63 -> 6
65 -> 7
850 -> 24
459 -> 23
716 -> 22
425 -> 20
327 -> 16
Вы можете взять в п , как и любой из следующих условий :
- целое число
- список истинных / ложных значений для двоичного представления
- строка для двоичного представления
- базовая строка 10 (хотя я не уверен, почему кто-то сделал бы это)
Сделайте ваш код как можно короче.