У мого вчителя Precalc є одна з його улюблених проблем, яку він склав (або, швидше за все, викрав натхненний xkcd ), що включає ряд n
пісуарів. "Контрольний мат" - це ситуація, при якій кожен пісуар вже зайнятий АБО має зайнятий пісуар поруч. Наприклад, якщо людина є X
, то
X-X--X
вважається мат. Зауважте, що людина не може зайняти пісуар поруч із вже зайнятим пісуаром.
Завдання
Ваша програма буде приймати число stdin
, аргументи командного рядка або аргумент функції. Потім ваша програма роздруковує або повертає кількість способів, за якими може відбуватися реєстрація, із введеною кількістю піссуарів.
Приклади
0 -> 1
(Відліки нульовий випадок як мат)
1 -> 1
( X
)
2 -> 2
( X-
або -X
)
3 -> 2
( X-X
або -X-
)
4 -> 3
( X-X-
, -X-X
або X--X
)
5 -> 4
( X-X-X
, X--X-
, -X-X-
, або -X--X
)
6 -> 5
( X-X-X-
, X--X-X
, X-X--X
, -X--X-
або -X-X-X
)
7 -> 7
( X-X-X-X
, X--X-X-
, -X-X--X
, -X--X-X
, X-X--X-
, X--X--X
або -X-X-X-
)
8 -> 9
( -X--X--X
, -X--X-X-
, -X-X--X-
, -X-X-X-X
, X--X--X-
, X--X-X-X
, X-X--X-X
, X-X-X--X
, X-X-X-X-
)
...
Оцінка балів
Виграє найменша програма в байтах.
''
. Це те саме, що і з факторіалами та перестановками, 0! = 1, оскільки існує рівно один спосіб впорядкувати 0 предметів.