例题: 爬楼梯
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。
输入:输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <=N <= 30输出不同的走法数,每一行输入对应一行
输出:不同的走法数,每一行输入对应一行输出
分析:n级台阶的走法 = 先走一级后,n-1级台阶的走法 + 先走两级后,n-2级台阶的走法。即 f(n) = f(n-1)+f(n-2)
很经典也很简单的题,算法如下:
#include<iostream>
using namespace std;
int stair(int n){
if( n == 0 )
return 1;
if( n == 1 )
return 1;
return stair( n-1 ) + stair( n-2 );
}
int main(){
int n;
while(cin>>n)
cout<<stair(n)<<endl;
return 0;
}