简易俄罗斯方块(tetris.cpp)
【问题描述】
小明有一个长为 N 宽为 2 的矩形,给你两种俄罗斯方块:一个长 2 宽 1,另一个是 L
型覆盖 3 个方形的方块。如下图:
方块可以旋转,并可以无限制提供。小明的任务是计算用这两种来覆盖 N* 2 的矩形的
覆盖方法。例如一个 23 的矩形可以有 5 种覆盖方法,如下:(用 0,1,2 表示不同的方块)
2
012 002 011 001 011
012 112 022 011 001
注意可以使用两种砖头混合起来覆盖,如 24 的墙可以这样覆盖:
0112
0012
给定 N,要求计算 2* N 的矩形的覆盖方法。由于结果很大,所以只要求输出最后 4 位。
例如 2* 13 的覆盖方法为 13465,只需输出 3465 即可。如果答案少于 4 位,就直接输出就
可以,不用加前导 0,如 N=3 时输出 5。
【输入格式】
一个整数 N,表示矩形的长,宽度固定为 2。
【输出格式】
输出覆盖方法的最后 4 位,如果不足 4 位就输出整个答案。
【输入输出样例 1】
tetris.in
7
tetris.out
117
【输入输出样例 2】
tetris.in
13
tetris.out
3465
【输入输出样例 3】
tetris.in
198
tetris.out
9365
【输入输出样例 4】
tetris.in
5
tetris.out
24
【数据说明】
对于 40% 的数据,1<=n<=10;
对于 100% 的数据,1<=n<=10^6;