爬楼梯
树老师爬楼梯,它可以每次走1级或者2级,输入楼梯的级数,求不同的走法数
例如:楼梯一共有3级,它可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共有3种走法
输入
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30
输出
不同的走法数,每一行输入对应一行
样例输入
5
8
10
样例输出
8
34
89
#include<iostream>
using namespace std;
#define MAXSIZE 100
int doStairs(int n){
if(n==1){
return 1; //如果只有一层阶梯,就只有一种解法
}else if(n==2){
return 2; //如果只有两层阶梯,就只有两种解法
}else{
//如果有n层阶梯,可以理解为走一步,剩下的刚好是n-1种解法,走两步,剩下的刚好是n-2种解法
return doStairs(n-1)+doStairs(n-2);
}
}
int main(){
int n; //n表示层数
int *result=new int[MAXSIZE]; //存储的结果数组
int num=0; //表示输入的数的个数
while(cin>>n){
result[num++]=doStairs(n); //执行方法并返回具体数值
}
for(int i=0;i<num;i++){
cout<<result[i]<<" ";
}
return 0;
}