题目大意:楼梯有n个台阶,可以一步上一个台阶也可上两步,问一共有多少种上楼方法?
解题思路:这是一道计数问题,通过找规律可以发现这是一个Fibonacci数列的问题,直接就可以打表进行输出即可。
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=2041
code:
#include <iostream>
#include <cstdio>
using namespace std;
const int MAXN = 40+10;
int n,m;
int f[MAXN];
int main(){
f[0]=1,f[1]=1;
for(int i=2;i<MAXN;i++) //先预处理打表,F(n)=F(n-1)+F(n-2)
f[i]=f[i-1]+f[i-2];
scanf("%d",&m);
while(m--){
scanf("%d",&n);
printf("%d\n",f[n-1]);
}
return 0;
}