树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。
输入:
输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<=N<=30,输出不同的走法数, 每一行输入对应一行
输出:
不同的走法数,每一行输入对应一行输出
样例输入:
5
8
10
样例输出:
8
34
89
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//n级台阶走法有两类:第一步1级=n-1级台阶所有走法,第一步2级=n-2级台阶所有走法
//f(n)=f(n-1)+f(n-2);
//边界条件:n<0:0 n=0: 1
//或:n=0:1 n=1;1
//或:n=1:1 n=2:2
int step(int n){
if(n<0)return 0;
else if(n==0)return 1;
else return step(n-1)+step(n-2);
}
int main(){
int N;
while(cin>>N){
cout<<step(N)<<endl;
}
return 0;
}