n规模的格子只能从n-1和n-2得来,n-1的时候我们增加一个2×1格子,竖着放,可以有f(n-1)种放法,n-2时候我们可以增加2×2个格子,2个都横着放,可以有f(n-2)种方法。注意本题思想不错,如何从一种状态达到另一种状态,递推有时候还是很有用的。
#define Max 55
#include<cstdio>
#include<cstring>
#include<cctype>
int n;
long long c[Max];
int main(){
//freopen("input.txt","r",stdin);
c[1]=1;c[2]=2;c[3]=3;
for(int i=3;i<=50;i++)
{
c[i]=c[i-2]+c[i-1];
}
while(~scanf("%d",&n))
{
printf("%I64d\n",c[n]);
}
return 0;
}