题目描述:有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;
}

这篇博客介绍了如何通过递归算法解决经典的楼梯爬升问题,即每次可以爬1阶或2阶楼梯,求解到达n阶楼梯有多少种不同的爬法。博主给出了C++代码实现,展示了如何利用斐波那契数列的思想来解决这个问题。通过递归调用climbStairs函数,当n小于3时直接返回n,否则返回前两阶爬法的和,以此计算出所有可能的方法数。

被折叠的 条评论
为什么被折叠?



