题目描述:有n阶楼梯,每次只能爬1阶或2阶。一共有多少种方法爬到楼顶?
求解思路:
初始位于0阶;
到达第1阶只能从0阶上来,1种方法;
到达第2阶可以从第1阶上来,也可以从第0阶上来;
到达第3阶可以从第2阶上来,也可以从第1阶上来;
…
到达第n阶可以从第n-1阶上来,也可以从第n-2阶上来;
C++代码实现如下:
#include<iostream>
using namespace std;
int climbStairs(int n){
if(n<3){
return n;
}else{
return climbStairs(n-1)+climbStairs(n-2);
}
}
int main(){
int n;
cin>>n;
cout<<climbStairs(n)<<endl;
return 0;
}