斐波那契数列的形式是后一位数是前两位数之和,以此类推
具体表现为:1 2 3 5 8 13 21 34 55 .....
# -*- coding: utf-8 -*-
# File : 迭代器实现斐波那契数列.py
# Author: HuXianyong
# Date : 2018-07-10 09:20
#方法一,用一个类的迭代器去做斐波那契数列
import time
class Foo:
def __init__(self,m,n):
self.n=n
self.m=m
def __iter__(self):
return self
def __next__(self):
if self.m > 500:
exit()
self.n,self.m = self.m,self.n+self.m
return self.n
f1=Foo(1,1)
for i in f1:
time.sleep(1)
print(i)
#方法二:函数公式形式的斐波那契数列
import time
def item(num):
if num == 0:
res = 0
elif num == 1:
res = 1
else:
res = item(num -1) +item(num - 2 )
return res
i=0
while i < 9:
print(item(i))
time.sleep(1)
i+=1
方法三:迭代形式加入列表的斐波那契数列
def fibo(num):
numList = [0,1]
for i in range(num -2):
numList.append(numList[-2] + numList[-1])
return numList
print(fibo(10))
def fibo(n):
x, y = 0, 1
while(n):
x,y,n = y,x+y,n-1
return x
print(fibo(10))
转载于:https://blog.51cto.com/853056088/2139644