您的位置:首页 > 其它

递归--走楼梯

2017-03-15 18:12 197 查看


例题: 爬楼梯树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。

输入

输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <=N <= 30输出不同的走法数,每一行输入对应一行爬楼梯输出不同的走法数,每一行输入对应一行输出

样例输入

5 8
10

样例输出

8 34
89

爬楼梯n级台阶的走法 =先走一级后,n-1级台阶的走法 +先走两级后,n-2级台阶的走法

f(n) = f(n-1)+f(n-2)

#include<iostream>
using namespace std;
int step(int num)
{
if(num==1)
return 1;
if(num==2)
return 2;
return step(num-1)+step(num-2);
}
int main()
{
int n;
while(cin>>n)
{
cout<<step(n)<<endl;
}
return 0;
}

边界条件: 
第一种递归结束条件

n < 0 0

n = 0 1

第二种递归结束条件

n = 1 1

n = 0 1 

第三种递归结束条件

n = 1 1 

n = 2 2

以上三种的递归结束条件都是可以的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: