Mi maestro de Precalc tiene uno de sus problemas favoritos que inventó (o más probablemente robó inspirado por xkcd ) que involucra una fila de n
urinarios. "Jaque mate" es una situación en la que cada urinario ya está ocupado O tiene un urinario ocupado junto a ellos. Por ejemplo, si una persona es un X
, entonces
X-X--X
se considera jaque mate. Tenga en cuenta que una persona no puede ocupar un orinal junto a un orinal ya ocupado.
Tarea
Su programa tomará un número stdin
, argumentos de línea de comando o un argumento de función. Luego, su programa imprimirá o devolverá la cantidad de formas en que el jaque mate puede ocurrir con la cantidad ingresada de urinarios.
Ejemplos
0 -> 1
(el caso nulo cuenta como jaque mate)
1 -> 1
( X
)
2 -> 2
( X-
o -X
)
3 -> 2
( X-X
o -X-
)
4 -> 3
( X-X-
, -X-X
o X--X
)
5 -> 4
( X-X-X
, X--X-
, -X-X-
, o -X--X
)
6 -> 5
( X-X-X-
, X--X-X
, X-X--X
, -X--X-
o -X-X-X
)
7 -> 7
( X-X-X-X
, X--X-X-
, -X-X--X
, -X--X-X
, X-X--X-
, X--X--X
o -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-
)
...
Tanteo
El programa más pequeño en bytes gana.
''
. Esto es lo mismo que con factorial y permutaciones, 0! = 1, porque hay exactamente 1 forma de organizar 0 elementos.