Fibonacci數列使用迭代器實現

2022-08-19 18:06:07 字數 879 閱讀 5495

fibonacci數列,數列中第乙個數為0,第二個數為1,其後的每乙個數都可由前兩個數相加得到:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

class fibiterator(object):

"""斐波那契數列迭代器"""

def __init__(self, n):

""":param n: int, 指明生成數列的前n個數

"""self.n = n

# current用來儲存當前生成到數列中的第幾個數了

self.current = 0

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

self.num1 = 0

# num2用來儲存前乙個數,初始值為數列中的第二個數1

self.num2 = 1

def __next__(self):

"""被next()函式呼叫來獲取下乙個數"""

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):

"""迭代器的__iter__返回自身即可"""

return self

if __name__ == '__main__':

fib = fibiterator(10)

for num in fib:

print(num, end=" ")

計算Fibonacci數列

上機內容 用動態分配空間的方法計算fibonacci數列的前30項並儲存到動態分配的空間中 上機目的 學習fibonacci數列演算法 我的程式 includeusing namespace std void main int p new int 30 p 1 p 1 1 cout p p 2 fo...

Fibonacci數列 餘數

fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求fn除以10007的餘...

Fibonacci數列求解

問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求fn除以10...