Guru Precalc saya memiliki salah satu masalah favoritnya yang ia ciptakan (atau lebih mungkin mencuri terinspirasi oleh xkcd ) yang melibatkan sederetan nurinal. "Skakmat" adalah situasi di mana setiap urinoir sudah terisi ATAU memiliki urin yang terisi di sebelahnya. Misalnya, jika seseorang adalah seorang X, maka
X-X--X
dianggap sekakmat. Perhatikan bahwa seseorang tidak dapat menempati urinoir di sebelah urinoir yang sudah diduduki.
Tugas
Program Anda akan mengambil nomor melalui stdin, argumen baris perintah, atau argumen fungsi. Program Anda kemudian akan mencetak atau mengembalikan jumlah cara skakmat dapat terjadi dengan jumlah urinal yang dimasukkan.
Contohnya
0 -> 1(penghitungan kasus null sebagai skakmat)
1 -> 1( X)
2 -> 2( X-atau -X)
3 -> 2( X-Xatau -X-)
4 -> 3( X-X-, -X-X, atau X--X)
5 -> 4( X-X-X, X--X-, -X-X-, atau -X--X)
6 -> 5( X-X-X-, X--X-X, X-X--X, -X--X-atau -X-X-X)
7 -> 7( X-X-X-X, X--X-X-, -X-X--X, -X--X-X, X-X--X-, X--X--Xatau -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-)
...
Mencetak gol
Program terkecil dalam byte menang.
''. Ini sama dengan faktorial dan permutasi, 0! = 1, karena ada tepat 1 cara untuk mengatur 0 item.