题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
斐波那契数列:
斐波那契数列指的是这样一个数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368。
可以观察到,从第3个数开始,每个数的值都等于前连个数之和。
同时,定义f(0)=0, f(1)=1.
则 f(2)=f(1)+f(0)=1;
f(3)=f(2)+f(1)=2;
... 依次类推,
f(n)=f(n-1)+f(n-2)
该问题实质是斐波那契数列求和,递推公式为 f(n)=f(n-1)+f(n-2);可以考虑,小青蛙每一步跳跃只有两种选择:一是再跳一级阶梯到达第 i 级阶梯,此时小青蛙处于第 i-1 级阶梯;或者再跳两级阶梯到达第 i 级阶梯,此时小青蛙处于第 i-2 级阶梯。小青蛙跳n层的有f(n)种跳法,跳到n-1层时是分f(n-1)种跳法,跳到n-2层时是f(n-2)种跳法,所以f(n)=f(n-1)+f(n-2)。
第二种方法: