斐波那契數列解法

2021-08-20 15:32:09 字數 1282 閱讀 6032

方法一:常規解法

def 

demo(month):

# 定義變數

a,b分別表示一月和二月的數目

a = 0

# a為第乙個數值

b = 1

# b為第二個數值

# 定義乙個計數器

i = 0

while i < month:

# 列印每次的數值

print(a)

a, b = b, a + b

i += 1

nume = demo(3)

方法二:函式的遞迴

def 

demo(nume):

# 當nume==1時,

前兩個數值是固定的0,

1if nume == 1:

return

0elif nume == 2:

return

1else:

# 利用函式的遞迴,後乙個等於前兩個之和

return demo(nume - 1) + demo(nume - 2)

# 如果是第五個數

de=demo(3)

# 輸出

print(de)

方法三:利用迭代器,其實和第一種思路相同

class rabbit(object):

def

__init__(self

, month):

self.month = month

self.new_month = 0

self.a = 0

self.b = 1

def

__iter__(self):

return

self

def

__next__(self):

if self.new_month < self.month:

rea=self.a

self.a,

self.b=self.b,

self.a+self.b

self.new_month+=1

return rea

else:

raise

stopiteration

def

main():

rabbit = rabbit(3)

for nume in rabbit:

print(nume)

if __name__ == '__main__':

main()

斐波那契數列解法

1 概念 在數學上,費波那契數列是以遞迴的方法來定義 f0 0 f1 1 fn fn 1 fn 2 n 2 用文字來說,就是費波那契數列由0和1開始,之後的費波那契係數就是由之前的兩數相加而得出。首幾個費波那契係數是 0,1,1,2,3,5,8,13,21,34,55,89,144,233 oeis...

斐波那契數列的快速解法

求解斐波那契數列,要求時間複雜度為o logn 主要思路是快速冪和矩陣乘法的結合律 利用數學歸納法來證明。快速冪的思想 當n為偶數的時候 an an2 an2 當n為奇數的時候 an a n 1 2 a n 1 2 a那麼fn 的問題就可以換成求矩陣的n次冪了。實現 class solution p...

題目 斐波那契數列。 解法二

程式分析 斐波那契數列 fibonacci sequence 又稱 分割數列,指的是這樣乙個數列 0 1 1 2 3 5 8 13 21 34 數學上的解法是 f0 0 n 0 f1 1 n 1 fn f n 1 f n 2 n 2 我是小白,大神無笑話小弟,只是想記錄下來自己的思路,根據我自己的理...