劍指offer 面試題10 斐波那契數列

2021-10-02 15:13:22 字數 2048 閱讀 5214

青蛙跳台

**跳台階

題目:寫乙個函式,輸入n,求斐波那契(fibonacci)數列的第n項。

斐波那契數列的定義如下:

f (n

)=

0& \text\\ 1& \text\\ f(n-1)+f(n-2)& \text \end

f(n)=⎩

⎪⎨⎪⎧

​01f

(n−1

)+f(

n−2)

​n=0

n=1n>1

class

solution

:def

fab(self, n)

:if n ==0:

return

0if n ==1:

return

1else

:return self.fab(n-1)

+ self.fab(n-

2)

# -*- coding:utf-8 -*-

class

solution

:def

fibonacci

(self, n)

:if n ==0:

return

0if n ==1:

return

1else

:sum=0

a =0 b =

1while n >1:

sum= a+b

# 保留大的數,把小的捨掉

a = b

b =sum n -=

1return

sum# write code here

題目描述

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。

# -*- coding:utf-8 -*-

class

solution

:def

jumpfloor

(self, number)

:# write code here

if number ==1:

return

1if number ==2:

return

2else

: j_one =

1 j_two =

2sum=0

for i in

range(2

, number)

:sum

= j_one + j_two

j_one = j_two

j_two =

sumreturn

sum

題目描述

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

# -*- coding:utf-8 -*-

class

solution

:def

jumpfloorii

(self, number)

:# write code here

if number ==1:

return

1

a =1sum=0

for i in

range(1

, number)

:sum=2

* a a =

sumreturn

sum

或者

# -*- coding:utf-8 -*-

class

solution

:def

jumpfloorii

(self, number)

:# write code here

return

pow(

2, number-

1)

Java 劍指offer 面試題10 斐波那契數列

求斐波那契數列的第n項 遞迴 遞迴法實現起來簡單,但是因為會計算重複的節點,這就意味著計算量會隨著n的增大急劇增大。當計算n 50,第50項的時候已經相當耗時 非遞迴 可以採用迴圈,先得到f 0 f 1 相加得到f 2 再相加得到f 3 再得到f 4 依次得到f n 寫乙個函式,輸入n,求斐波那契數...

(劍指offer)面試題10 斐波那契數列

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。變形 青蛙跳台,乙隻青蛙可以一次跳1個台階,也可以一次跳2個台階。求該青蛙跳上n級台階總共多少種跳法 class solution def fibonacci self,n temparray 0,1 初始值0,1 if ...

劍指Offer 面試題10斐波那契數列

劍指offer面試題彙總 題目描述 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9...