上台阶

题目链接: http://exercise.acmcoder.com/online/online_judge_ques?ques_id=1668&konwledgeId=136

解题思路: f[n]=f[n-1]+f[n-2]。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 const int MAXN=100005;
 5 typedef long long LL;
 6 
 7 LL f[41];
 8 
 9 void init()
10 {
11     f[0]=1LL;f[1]=0LL;f[2]=1LL;f[3]=2LL;
12     for (int i=4;i<=40;++i)
13         f[i]=f[i-1]+f[i-2];
14 }
15 
16 int main()
17 {
18 #ifndef ONLINE_JUDGE
19     freopen("test.txt","r",stdin);
20 #endif // ONLINE_JUDGE
21     init();
22     int Case;
23     scanf("%d",&Case);
24     while (Case--)
25     {
26         int n;
27         scanf("%d",&n);
28         printf("%lld
",f[n]);
29     }
30     return 0;
31 }
原文地址:https://www.cnblogs.com/djingjing/p/8894067.html