解题思路:
一只母猪生下第二头后立马被杀掉,可以这样想即,生下第二头便被杀掉,可以看成母猪数量没变
第一天 1
第二天 2
第三天 3 :第一头生第二头后杀掉还是1头,第二头再加上第二头生下的,一共三头
所以只需要前一天的数量 + 前前一天的数量 = 当天的数量。
可以理解,母猪只生下一头后便不生了(i-2),还要加上下一个生的(i-1)。
斐波那契数列:f[i] = f[i - 1] + f[i - 2]
Ac code :
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 int t,a,i,x[21]; 6 x[1]=1; 7 x[2]=2; 8 for(i=3;i<21;++i) 9 x[i]=x[i-1]+x[i-2]; 10 scanf("%d",&t); 11 while(t--) 12 { 13 scanf("%d",&a); 14 printf("%d ",x[a]); 15 } 16 return 0; 17 }