题目大意: 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法。 解题思路: 找出递推公式: f[i] = f[i-1] + f[i-2] * 2; 代码:
#include
using namespace std;
const int MAX = 31;
int main(void)
{
    __int64 f[MAX];
    f[1] = 1;
    f[2] = 3;
    for(int i = 3; i < MAX; i++)
        f[i] = f[i-1] + f[i-2] * 2;
    int cas, n;
    scanf("%d", &cas);
    while(cas--)
    {
        scanf("%d", &n);
        printf("%I64d\n", f[n]);
    }
    return 0;
}
posted on 2012-02-15 11:29  cchun  阅读(362)  评论(0编辑  收藏  举报