多米诺骨牌

在课堂上,我们分析了棋盘覆盖问题,同学们也看了我的程序运行的情况,今天我们来看一下另外一个覆盖问题。今天的问题是这样的:用n个2X1的矩形(这种矩形我们以后称之为骨牌或多米诺)覆盖2Xn的棋盘,有多少种不同的覆盖法?

Input
本问题有多组测试数据,对于每一组测试数据,输入只有一行n(意义如上所述,1<=n<=45)。

Output
对于每一组输入,输出也只有一行,即覆盖的方法种数。

Sample Input
1
2

Sample Output
1
2

#include
using namespace std;
int i,i0,n,m;
long long dp[55];
int main()
{
    dp[0]=dp[1]=1;
    for(i=2;i<=45;i++)dp[i]=dp[i-1]+dp[i-2];
    while(scanf("%d",&n)!=EOF)
    {
        printf("%lld\n",dp[n]);
    }
    return 0;
}

你可能感兴趣的:(数据结构与算法)