接下来我们用下面几种方法实现斐波那契数列的数列,有的效率相对于低一点,有的效率相对于高一点,接下来,赶紧看一下代码吧。
方法一:最常用的方法
迭代器
def fib(index):
if index<2:
return 1
return fib(index-1)+fib(index-2)
方法二:用生成器的方法
def gen_fib(index):
n,a,b=0,0,1
while n<index:
yield b
a,b=b,a+b
n+=1
gen_fib(5)
方法三:自定义迭代器实现
class Fib(object):
def init(self,max):
self.x=0
self.y=1
self.max=max
def __iter__(self):
return self
def __next__(self):
n_next=self.y
self.x,self,y=self.y,self.x+self.y
if self.max>self.x:
return n_next
else:
raise StopIteration()
网友评论