1. 程式人生 > >演算法題/青蛙跳臺階問題

演算法題/青蛙跳臺階問題

python2.7

問題一:一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

f(n) = f(n-1)= 1 n=1
f(n) = 1+1 = 2 n=2  當第一次跳一個臺階時,有一種方法,當第一次跳兩個臺階時有一種方法
f(n) = 2+1 =3       n=3  當第一次跳一個臺階時有f(3-1)中方法,當第一次跳兩個臺階時有f(3-2)中方法
因此,f(n) = f(n-1)+f(n-2) n>2

問題二:一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。

f
(n) =f(n-1)= 1 n=1 f(n) = 1+1 = 2 n=2 當第一次跳一個臺階時,有一種方法,當第一次跳兩個臺階時有一種方法 f(n) = 2+1 =3 n=3 當第一次跳一個臺階時有f(3-1)種方法,當第一次跳兩個臺階時有f(3-2)種方法,當第一次跳3個臺階時有1種跳法 因此 f(n) = f(n-1)+f(n-2)+......f(1)+1種跳法 f(n-1) = f(n-2)+f(n-3)+.....f(1)+1 f(n)-f(n-1)=f(n-1) 所以f(n) = 2*f(n-1) n>2
#coding:utf-8
def jump1(n)
:
if n==1: return 1 elif n==2: return 2 else: return jump1(n-1)+jump1(n-2) def jump2(n): if n==1: return 1 elif n==2: return 2 else: return 2*jump1(n-1) print(jump1(5)) print(jump2(5))

這裡寫圖片描述