Mon professeur Precalc a l’un de ses problèmes préférés qu’il a inventé (ou plus probablement une étole inspirée de xkcd ) qui implique une rangée d’ n
urinoirs. "Checkmate" est une situation dans laquelle chaque urinal est déjà occupé OU a un urinoir occupé à côté. Par exemple, si une personne est un X
, alors
X-X--X
est considéré comme maté. Notez qu'une personne ne peut pas occuper un urinoir à côté d'un urinoir déjà occupé.
Tâche
Votre programme utilisera un nombre stdin
, des arguments de ligne de commande ou un argument de fonction. Votre programme imprimera ensuite ou renverra le nombre de façons dont Checkmate peut se produire avec le nombre d’urinaux entrés.
Exemples
0 -> 1
(cas nul compte comme mat)
1 -> 1
( X
)
2 -> 2
( X-
ou -X
)
3 -> 2
( X-X
ou -X-
)
4 -> 3
( X-X-
, -X-X
, ou X--X
)
5 -> 4
( X-X-X
, X--X-
, -X-X-
, ou -X--X
)
6 -> 5
( X-X-X-
, X--X-X
, X-X--X
, -X--X-
ou -X-X-X
)
7 -> 7
( X-X-X-X
, X--X-X-
, -X-X--X
, -X--X-X
, X-X--X-
, X--X--X
ou -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-
)
...
Notation
Le plus petit programme en octets gagne.
''
. C'est pareil qu'avec factoriel et permutations, 0! = 1, car il existe exactement 1 façon d'organiser 0 élément.