1 #include<stdio.h> 2 #include<algorithm> 3 #include<string.h> 4 using namespace std; 5 int main() 6 { 7 long long a[52]={0,1,2}; 8 int n,i; 9 for(i=3;i<52;i++) 10 a[i]=a[i-1]+a[i-2]; 11 while(scanf("%lld",&n)!=EOF) 12 { 13 printf("%lld ",a[n]); 14 } 15 return 0; 16 }
递推 最后的放置只有两种可能
1、竖着放一个 那他的种数等于a【i-1】
2、横着放两个 那他的种数等于a【i-2】
所以a[i]=a[i-1]+a[i-2]