實現斐波那契數列

2021-08-18 05:51:49 字數 1483 閱讀 8298

方法

一、通過迭代器實現

class

fibiterator

(object):

def__init__

(self, n):

self.n = n

# 是使用current儲存當前數列中第幾個數

self.current = 0

# 使用num1儲存數列中前乙個數,初始值為0

self.num1 = 0

# 使用num2儲存數列中後乙個數,初始值為1

self.num2 = 1

def__next__

(self):

# 判斷迭代當前個數小於我們輸入數字

if self.current < self.n:

num = self.num1

# 數列核心**

self.num1, self.num2 = self.num2, self.num1+self.num2

self.current += 1

return num

else:

# 迭代完成丟擲異常,停止迭代

raise stopiteration

def__iter__

(self):

# 迭代器標誌 ,返回自身

return self

# 程式入口

if __name__ == '__main__':

fib = fibiterator(5)

for num in fib:

print(num, end=" ")

輸出結果:

0 1 1 2 3

方法二、通過生成器實現

def

fib(n):

current = 0

num1, num2 = 0, 1

while current < n:

num = num1

num1, num2 = num2, num1+num2

current += 1

yield num

return

if __name__ == '__main__':

f = fib(5)

for _ in fib(5):

print(next(f), end=" ")

輸出結果為:

0 1 1 2 3

方法三、通過函式實現

def

fibonacci

(n):

a, b = 0, 1

fib_list = [0,]

for _ in range(n - 1):

a, b = b, a + b

return fib_list

print(fibonacci(9))

輸出結果為:

[0, 1, 1, 2, 3, 5, 8, 13, 21]

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契數列

1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...