题目:
一只青蛙要跳上n层高的台阶,一次能跳一级,也可以跳两级,有多少种跳上这个n层高台阶的方法?
问题分析
由于只能跳一步或者两步,所以在青蛙到达最后一层的时候有两种情况:
①最后一跳是两级②最后一跳是一级
如果最后一跳是两级,那么前面跳过了n-2级台阶,这时候可以把问题转换成,前n-2级台阶跳了多少次,同样的又继续分出最后第二跳是一级还是两级的问题
如果最后一跳是一级,那么前面跳过了n-1级台阶,同上继续分析最后第二跳
递归的思想,可以得到递归式子:f(n) = f(n-2) + f(n-1)
f(n)就是需要求出的n层总跳数,f(n-2)就是最后一跳是两级的情况,f(n-1)就是最后一跳时一级的情况。
这是斐波那契数列的推导式,于是可以把问题转换为求斐波那契数列。
可以参考实现斐波那契数列