剑指offer:跳台阶(Python)

本文通过解析青蛙跳台阶的问题,揭示了其跳法总数与斐波那契数列之间的关系。利用递推公式实现了高效的算法解决方案,并通过图表形式详细解释了这一数学现象背后的逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解题思路

1级台阶:1种跳法
2级台阶:2种跳法
3级台阶:3种跳法
4级台阶:5种跳法
。。。
即:台阶级数和跳法总数的关系满足斐波那契数列。
斐波那契数列:1,1,2,3,5,8,13,。。。
求解斐波那契数列第n项的方式求解该题即可。

Python代码

def jumpFloor(self, number):
    list = [1,1]
    while number > 0:
        list[0],list[1] = list[1],list[0]+list[1]
        number -= 1
    return list[0]

One More Thing

为什么青蛙跳台阶的跳法数量刚好满足斐波那契数列呢?
获取答案第一步:了解斐波那契数列的定义(图片引自知乎):


这里写图片描述

获取答案第二步:了解青蛙跳台阶的定义(图片引自博客):


这里写图片描述

这里写图片描述

获取答案:
斐波那契数列和青蛙跳台阶除初始条件略有差异,其通式完全一致。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值