Это был вдохновлен задачи 13 - неповторяющихся Binary о недавнем конкурсе НР CodeWars.
Давайте возьмем случайное десятичное число, скажем
727429805944311
и посмотрите на его двоичное представление:
10100101011001011111110011001011101010110111110111
Теперь разбейте это двоичное представление на подпоследовательности, где цифры 0
и 1
чередуются.
1010 010101 10 0101 1 1 1 1 1 10 01 10 0101 1 1010101 101 1 1 1 101 1 1
И преобразовать каждую подпоследовательность обратно в десятичную.
10 21 2 5 1 1 1 1 1 2 1 2 5 1 85 5 1 1 1 5 1 1
Задание
Возьмите одно положительное целое число в качестве входных данных и выведите последовательность положительных целых чисел, полученных в результате вышеуказанного процесса.
Детали
- Вход и выход должны быть десятичными или одинарными.
- Числа в выходных данных должны быть разделены разумным, понятным для человека способом, и они должны быть в десятичной или одинарной форме. Нет ограничений на пустое пространство. Допустимые стили вывода:
[1,2,3]
,1 2 3
,1\n2\n3
где\n
есть буквальные переводы строки и т.д.
Контрольные примеры
Input | Output
0 | 0
1 | 1
2 | 2
3 | 1 1
4 | 2 0
5 | 5
6 | 1 2
7 | 1 1 1
8 | 2 0 0
9 | 2 1
10 | 10
50 | 1 2 2
100 | 1 2 2 0
1000 | 1 1 1 1 10 0 0
10000 | 2 1 1 2 0 2 0 0 0
12914 | 1 2 2 1 1 2 2
371017 | 5 42 10 2 1
Дополнительное примечание: все числа в выходных данных должны иметь форму (2^k-1)/3
или 2*(2^k-1)/3
. То есть, 0 1 2 5 10 21, 42, 85, 170, ...
это A000975 в OEIS.
|tac
тогда останется в моем ответе :)