对于n 个骨牌,有f(n)种铺放方式。
已知骨牌的铺放方式有两种,横的放和竖的放。
那么对于竖的放,在已有的n-1个骨牌的铺放方式中,很容易得知,情况数为 f(n-1)种。
那么对于横的放,在已有的n-2个骨牌的铺放方式中,也容易得知,情况数为f(n-2)种。
综上: f(n)=f(n-1)+f(n-2)
#include<stdio.h>
#include<math.h>
int main()
{
__int64 f[51];
f[1]=1,f[2]=2,f[3]=3;
for(int n=4;n<51;n++)
{
f[n]=f[n-1]+f[n-2];
}
int x;
while(scanf("%d",&x)!=EOF)
{
printf("%I64d\n",f[x]);
}
return 1;
}