У моего учителя в 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, потому что есть ровно 1 способ расставить 0 предметов.