AOJ 8.童年生活二三事

动态规划+打表

 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 }
原文地址:https://www.cnblogs.com/ohyee/p/5251588.html