动态规划+打表
1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #include <cmath> 5 using namespace std; 6 7 #define REP(n) for(int o=0;o<n;o++) 8 9 const int maxn = 41; 10 int ans[maxn]={1,1,2,3,5,8,13,21,34,55,89,144,233,377,610, 11 987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393, 12 196418,317811,514229,832040,1346269,2178309,3524578,5702887, 13 9227465,14930352,24157817,39088169,63245986,102334155,165580141}; 14 15 int main() { 16 17 //ans[0] = 1; 18 //ans[1] = 1; 19 //for(int i = 2;i < maxn;i++) { 20 // ans[i] = ans[i - 1] + ans[i - 2]; 21 //} 22 23 //printf("ans[]={"); 24 //REP(maxn) 25 // printf("%d,",ans[o]); 26 //printf("}; "); 27 28 int n; 29 while(scanf("%d",&n),n != 0) { 30 printf("%d ",ans[n]); 31 } 32 33 return 0; 34 }