1.简单题意
求在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
2.解题思路
通过找规律,可以发现规律 a[1]=1,a[2]=2,a[n]=a[n-1]+a[n-2](n>2),但是这个题不止这么简单,因为后面输入的数太大,int和long类型都不行,我尝试用long long 类型,但是我的这个IDE不支持,所以用的——int64数组,但是,输出的时候提示cout的<<具有二义性,通过查阅资料,我用了printf来输出
3.感想
有些题看起来简单,但是充满了陷阱,我们需要小心小心在小心
4.ac代码
#include<iostream>
using namespace std;
int main()
{
void result(int n);
int n;
while(cin>>n)
{
result(n);
}
return 0;
}
void result(int n)
{
__int64 a[52];
a[0]=0;a[1]=1;a[2]=2;
for(int i=3;i<52;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%I64d\n",a[n]);
}