Il mio insegnante Precalc ha uno dei suoi problemi preferiti che ha inventato (o più probabilmente rubato ispirato da xkcd ) che coinvolge una fila di n
orinatoi. "Scacco matto" è una situazione in cui ogni orinatoio è già occupato O ha un orinatoio occupato accanto a loro. Ad esempio, se una persona è una X
, allora
X-X--X
è considerato scacco matto. Si noti che una persona non può occupare un orinatoio accanto a un orinatoio già occupato.
Compito
Il tuo programma prenderà un numero attraverso stdin
, arg della riga di comando o un argomento di funzione. Il programma quindi stamperà o restituirà il numero di modi in cui può verificarsi lo scacco matto con il numero immesso di orinatoi.
Esempi
0 -> 1
(il caso nullo conta come scacco)
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-
)
...
punteggio
Vince il programma più piccolo in byte.
''
. Questo è lo stesso di fattoriale e permutazioni, 0! = 1, perché esiste esattamente 1 modo per disporre 0 elementi.