#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; }
題目大意: 有一個大小是 2 x n 的網格,現在需要用2種規格的骨牌鋪滿,骨牌規格分別是 2 x 1 和 2 x 2,請計算一共有多少種鋪設的方法。 解題思路: 找出遞推公式: f[i] = f[i-1] + f[i-2] * 2; 代碼:
轉載于:https://www.cnblogs.com/cchun/archive/2012/02/15/2520234.html