Giáo viên Precalc của tôi có một trong những vấn đề yêu thích của anh ấy mà anh ấy đã tạo ra (hoặc nhiều khả năng là lấy trộm lấy cảm hứng từ xkcd ) liên quan đến một hàng n
bồn tiểu. "Checkmate" là một tình huống trong đó mọi bồn tiểu đã bị chiếm HOẶC có một bồn tiểu bị chiếm bên cạnh họ. Ví dụ, nếu một người là một X
, thì
X-X--X
được coi là chiếu tướng. Lưu ý rằng một người không thể chiếm một bồn tiểu bên cạnh một bồn tiểu đã chiếm.
Bài tập
Chương trình của bạn sẽ lấy một số thông qua stdin
, đối số dòng lệnh hoặc đối số hàm. Chương trình của bạn sau đó sẽ in ra hoặc trả về số cách mà checkmate có thể xảy ra với số lượng bồn tiểu được nhập vào.
Ví dụ
0 -> 1
(trường hợp vô tính là checkmate)
1 -> 1
( X
)
2 -> 2
( X-
hoặc -X
)
3 -> 2
( X-X
hoặc -X-
)
4 -> 3
( X-X-
, -X-X
, hoặc X--X
)
5 -> 4
( X-X-X
, X--X-
, -X-X-
, hoặc -X--X
)
6 -> 5
( X-X-X-
, X--X-X
, X-X--X
, -X--X-
hoặc -X-X-X
)
7 -> 7
( X-X-X-X
, X--X-X-
, -X-X--X
, -X--X-X
, X-X--X-
, X--X--X
hoặc -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-
)
...
Chấm điểm
Chương trình nhỏ nhất tính bằng byte thắng.
''
. Điều này giống như với giai thừa và hoán vị, 0! = 1, vì có chính xác 1 cách sắp xếp 0 mục.