一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上n级台阶一共有多少种方法?
思路:假设1级台阶有f(1)种方法,2级台阶有f(2)种方法,以此类推,n级台阶有f(n)种方法。假设n级台阶,他第一步有两种情况:(1)跳1级台阶,那么接下来就剩n-1级台阶,n-1级台阶有f(n-1)种跳法,那么合起来就有f(n-1)种跳法;(2)跳2级台阶,那么接下来就剩n-2级台阶,n-2级台阶有f(n-2)种跳法,那么合起来就有f(n-2)种跳法。那么n级台阶一共有f(n-1)+f(n-2)种跳法。1级台阶有1种方法,f(1)=1;2级台阶有2种方法,f(2)=2。
f(n)=f(n-1)+f(n-2);f(1)=1;f(2)=2;
扩展一下:青蛙一次不仅可以跳1级、2级,还可以跳3级、4级....n级,那么该青蛙跳上n级台阶一共有多少种方法?
思路:其方法和一次只能跳一个或者两个台阶类似,第一次跳1个,还有f(n-1)个方法;第一次跳2个,还有f(n-2)中方法;第一次跳3个,还有f(n-3)种方法....第一次跳n个,还有f(n-n)=f(0)=1种方法。f(0)=0,f(1)=1,f(2)=2
f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) = f(0) + f(1) + f(2) + f(3) + ... + f(n-1)
f(n-1) = f(n-2)+f(n-3)+...+f(n-1-(n-1)) + f(n-1-(n-1)) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2)
f(n) = 2*f(n-1)