码迷,mamicode.com
首页 > 编程语言 > 详细

python实现斐波那契数列

时间:2018-07-10 12:42:20      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:tool   false   init   class   列表   pytho   python实现   file   while   

斐波那契数列的形式是后一位数是前两位数之和,以此类推

具体表现为: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))


python实现斐波那契数列

标签:tool   false   init   class   列表   pytho   python实现   file   while   

原文地址:http://blog.51cto.com/853056088/2139644

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!