小明爬楼梯,已知他每次只能走一级或者两级台阶,要求实现递归函数waysOfClimbing(int n),功能为:
输入楼梯的级数n,输出一共有多少不同的走法数。
例:假设楼梯一共有3级,他可以每次都走一级,即1 1 1,或者第一次走一级,第二次走两级,即1 2,也可以第一次走两级,第二次走一级,即2 1,一共3种方法。提示:小明的最后一步只有两种走法,走一级或走两级。
样例输入:3
样例输出:3
#include <iostream>
#include <math.h>
using namespace std;
int climbstairs(int n)
{
int a[10001]={0};
int i;
a[0]=0;
a[1]=1;
a[2]=2;
if(n>10000)
{
return 0;
}
for(i=3;i<=n;++i)
{
a[i]=a[i-1]+a[i-2];
}
return a[n];
}
int main()
{
int n;
cin>>n;
cout<<climbstairs(n)<<endl;
return 0;
}
//使用递归函数
#include<iostream>
using namespace std;
int climbstairs(int n)
{
if(n==1||n==2)
{
return n;
}
else
{
return climbstairs(n-1)+climbstairs(n-2);
}
}
int main()
{
int n,res=0;
cin>>n;
res=climbstairs(n);
cout<<res;
}