青蛙跳台阶问题描述
一只青蛙一次可以跳一级台阶,也可以跳两级台阶。
求改青蛙跳上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
个台阶的跳法
算法
动态规划:用上一步的结果,来快速计算下一步的结果
代码如下