Це надихнуло проблему 13 - нещодавній конкурс бінарних програм HP 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 в ОЕІС .
|tac
залишиться у моїй відповіді тоді :)