题目地址
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路
- 递归
- 记跳 n 级台阶有
f(n)种方法- 如果第一次跳 1 级,那么之后的 n-1 级有
f(n-1)种跳法 - 如果第一次跳 2 级,那么之后的 n-2 级有
f(n-2)种跳法
- 如果第一次跳 1 级,那么之后的 n-1 级有
- 实际上就是首两项为 1 和 2 的斐波那契数列
code
class Solution {
public:
int jumpFloor(int number) {
int f = 1;
int g = 2;
number--;
while (number--) {
g = g + f;
f = g - f;
}
return f;
}
};
其实不难发现,和我们上次的题目几乎一模一样
剑指offer刷题笔记——斐波那契数列
本文详细解析了青蛙跳台阶问题,这是一个经典的递归问题,与斐波那契数列紧密相关。通过递归思路,文章提供了C++实现的解决方案,展示了如何计算跳上n级台阶的不同跳法数量。
894

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



