fn[i]表示走上第i级台阶的所有走法。
方程:fn[i]=fn[i-1]+fn[i-2];
1 #include<cstdio>
2 #define MAXN 40
3 using namespace std;
4 typedef unsigned long long LL;
5 LL fn[MAXN+1];
6
7 void solve(){
8 fn[1]=0;
9 fn[2]=1;
10 fn[3]=2;
11 for(int i=4;i<=MAXN;i++)
12 fn[i]=fn[i-2]+fn[i-1];
13 }
14
15 int main(){
16 int n,m;
17 solve();//先预处理出所有结果
18 scanf("%d",&n);
19 while(n--){
20 scanf("%d",&m);
21 printf("%lld\n",fn[m]);
22 }
23 return 0;
24 }