问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
这个问题可以想到递归来解决,因为以前遇到过类似的爬楼梯问题,也相当于斐波那契数列。
跳台阶,可以跳1级,也可以跳2级,求n级台阶跳法。
第一步有两种跳法:
跳1级,剩下跳法为f(n-1);
跳2级,剩下跳法为f(n-2);
当为n时,f(n)=f(n-1)+f(n-2);
但此题可以跳上n级台阶:
第一步有n种跳法:跳1级、跳2级、到跳n级
跳1级,剩下n-1级,则剩下跳法是f(n-1)
跳2级,剩下n-2级,则剩下跳法是f(n-2)
跳3级,剩下n-3级,则剩下跳法是f(n-3)
......
推理得到:
f(n)=f(n-1)+f(n-2)+...+f(1)
f(n-1)=f(n-2)+f(n-3)+...+f(1)
则f(n)=2*f(n-1)