概述
骨牌铺方格
Time Limit: 1000 ms Memory Limit: 32768 KiB
Problem Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0< n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1
3
2
Sample Output
1
3
2
分析:一个典型的递推计算题。
f(0) = 0,没有地方摆骨牌,所以为0;
f(1) = 1,只能竖着摆放1个骨牌;
f(2) = 2,可以是横着摆放2个骨牌,或者竖着摆放2个骨牌;
f(n) = f(n-2) + f(n-1),n>2,可以在f(n-2)的基础上在右边再横着放2个骨牌(竖着放已经在f(n-1)中),也可以在f(n-1)的基础上在右边再竖着1个骨牌。
#include<bits/stdc++.h>
using namespace std;
long long int f[60];
int main()
{
int x;
f[1] = 1;
f[2] = 2;
f[3] = 3;
for (int i = 4; i <= 50; i++)
f[i] = f[i - 1] + f[i - 2];
while (cin >> x)
cout<<f[x]<<endl;
return 0;
}
最后
以上就是高大高跟鞋为你收集整理的骨牌铺方格的全部内容,希望文章能够帮你解决骨牌铺方格所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复