Problem Description
在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图:
Input
输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0<n<=50)。
Output
对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。
Sample Input
1 3 2
Sample Output
1 3 2分析:本题是斐波那契数列的应用,当n=N时,在第N列与第N-1列方格中有两种铺放方法,一种方法是骨牌竖放在第N列方格中,另一种方法是两个骨牌横放在第N列与第N-1列方格中则N列方格的总铺放方法等于N-1列方格的铺放方法与N-2列方格的铺放方法之和,即a[n]=a[n-1]+a[n-2](a[1]=1;a[2]=2)上代码:#include<stdio.h> _int64 a[50]; int main() { int i; a[0]=1; a[1]=2; for(i=2;i<50;i++) a[i]=a[i-1]+a[i-2]; while(scanf("%d",&i)!=EOF) printf("%I64d\n",a[i-1]); return 0; }