一只青蛙一次可以跳上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)