一只青蛙一次可以跳上1級臺階蚁吝,也可以跳上2級臺階。求該青蛙跳上n級臺階一共有多少種方法踪宠?
思路:假設(shè)1級臺階有f(1)種方法,2級臺階有f(2)種方法泄伪,以此類推,n級臺階有f(n)種方法匿级。假設(shè)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;
擴(kuò)展一下:青蛙一次不僅可以跳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)