задача
Найдите набор чисел, такой, что двоичное представление содержит два или более серий, 1
разделенных хотя бы одним 0
.
Например, для чисел длиной 4 бита:
0 0000 (no ones)
1 0001 (only one run)
2 0010 (only one run)
3 0011 (only one run)
4 0100 (only one run)
5 0101 Valid
6 0110 (only one run)
7 0111 (only one run)
8 1000 (only one run)
9 1001 Valid
10 1010 Valid
11 1011 Valid
12 1100 (only one run)
13 1101 Valid
14 1110 (only one run)
15 1111 (only one run)
вход
Целое число, предоставленное приложению через некоторый вход в диапазоне 3 .. 32
. Это представляет максимальное количество бит для подсчета до.
Ввод n
указывает, что цифры должны быть проверены.0 .. 2n-1
Выход
Разделенный (на ваш выбор) список всех номеров, соответствующих критериям. Числа должны быть представлены в числовом порядке. Допускается дополнительный конечный разделитель. Вложения структуры данных (например, []
и аналогичные) также являются приемлемыми.
пример
Input: 3
Output: 5
Input: 4
Output: 5, 9, 10, 11, 13
Input: 5
Output: 5, 9, 10, 11, 13, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 29
Это код-гольф - ответ с наименьшим количеством байтов выигрывает.
\n
разделяет и ставит \n
в последнюю строку, то ,
и ,
трейлинг должен быть приемлемым. Обновлено.
[1, 2, 3]
?