很简单的高中数学题,写出来主要是提醒自己,写完递推公式(尤其是公式)一定要检查多遍。
1 #include<stdio.h> 2 #include<string.h> 3 4 int M; 5 int num; 6 int d[102]; 7 8 int solve(int i) 9 { 10 if(d[i]>=0) 11 return d[i]; 12 if(i==2) 13 return d[i]=1; 14 else if(i==3) 15 return d[i]=2; 16 return d[i]=1*solve(i-1)+solve(i-2); 17 } 18 19 int main() 20 { 21 int T; 22 scanf("%d",&T); 23 while(T--) 24 { 25 memset(d,-1,sizeof(d)); 26 num=0; 27 scanf("%d",&M); 28 printf("%d ",solve(M)); 29 } 30 return 0; 31 }