C语言——青蛙跳台阶问题

青蛙跳台阶是一个经典的数学问题,它描述了一只青蛙每次可以跳一级或两级台阶,求解跳上n级台阶有多少种不同的跳法。文章通过实例分析展示了当n分别为1、2、3、4时的跳法,并提出了一种动态规划的算法来解决这个问题,即当前的跳法是前两个台阶跳法数量之和。动态规划方法利用之前步骤的结果来高效计算后续步骤的答案。
摘要由CSDN通过智能技术生成

青蛙跳台阶问题描述

一只青蛙一次可以跳一级台阶,也可以跳两级台阶。

求改青蛙跳上n级台阶,有多少种跳法?

图文解析

当n = 1,有1种跳法

当n = 2,有2种跳法

a.跳一次两级台阶

b.跳两次一级台阶

当n = 3,有3种跳法

3 = 1 + 2

a.跳三次一级台阶

b.先跳一次一级台阶,再跳一次两级台阶

c.先挑一次两级台阶,再跳一次一级台阶

当n = 4,有5种跳法

4 = 2 +3

a.跳四次一级台阶

b.跳两次两级台阶

c.先跳一次一级台阶,再跳一次两级台阶,最后再跳一次一级台阶

d.先跳两次一级台阶,再跳一次两级台阶

e.先跳一次两阶台阶,在跳两次一级台阶

.................

由此可得n > 2时,前面两个相加等于青蛙跳台阶方法

解析

青蛙第一次要么跳一个台阶,要么跳两个台阶

A.假设蛙第一次跳一个台阶,还有 n-1个台阶要跳,跳法就是青蛙

n - 1个台阶的跳法

B.假设蛙第一次跳两个台阶,还有 n-2个台阶要跳,跳法就是青蛙

n - 2个台阶的跳法

所以青蛙跳n个台阶跳法等于,跳n-1个台阶的跳法 加 跳n-2

个台阶的跳法

算法

动态规划:用上一步的结果,来快速计算下一步的结果

代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值