Послідовність кривої дракона (або звичайна послідовність складання паперу) - це двійкова послідовність. a(n)
задається запереченням біта, що залишився від найменш значущого 1 n
. Наприклад, для обчислення a(2136)
ми спочатку перетворюємо на двійкові:
100001011000
Ми знаходимо наш найменш вагомий біт
100001011000
^
Візьміть шматочок ліворуч
100001011000
^
І повернути своє заперечення
0
Завдання
Дано додатне ціле число як вхід, вихід a(n)
. (Ви можете виводити цілим чи булевим). Ви повинні прагнути зробити свій код якомога меншим, виміряним байтами.
Випробування
Ось перші 100 записів по порядку
1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1
100001011000
- це 0
. Ви маєте на увазі найменш значущий 1
?