您的位置:首页 > 编程语言 > Python开发

python 斐波那契数列

2017-10-30 20:25 141 查看

斐波那契数列实现

方法一:普通方法

def fib(n):
a=0
b=1
for i in xrange(n):
a,b = b,a+b
return a


方法2:迭代器

# -*- coding: utf-8 -*-
class Fibs:
def __init__(self):
self.a=0
self.b=1

def next(self):
self.a,self.b=self.b,self.a+self.b
return self.a

def __iter__(self):#迭代器自身实现它的iter方法,使得可以直接在for循环中使用
return self

#测试用例
fibs=Fibs()
fib_list = []
for fib in fibs:
fib_list.append(fib)
if fib > 1000:
break
print fib_list

##输出结果:
>>>
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]


方法3:生成器

# -*- coding: utf-8 -*-
def fibs():
a,b=0,1
while True:#无限生成
a,b=b,a+b
yield a

#测试用例
fib_list = []
num=1000#设置一个截止数字
for fib in fibs():
fib_list.append(fib)
if fib>num:break
print fib_list

##输出结果:
>>>
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: