zoukankan      html  css  js  c++  java
  • Fibonacci数列使用迭代器实现

    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=" ")
    

      

                                                                       -------  知识无价,汗水有情,如需搬运请注明出处,谢谢!

  • 相关阅读:
    PHP中的类函数和类对象
    PHP魔术方法__clone()篇
    PHP魔术方法__tostring()篇
    PHP魔术方法__call()篇
    自己写的PHP的mql类
    PHP的分页
    ThinkPHP的调用css,js和图片的路径
    JavaScript作用域链
    在Eclipse中开发WEB项目
    eclipse官方网址、各个版本的下载
  • 原文地址:https://www.cnblogs.com/wf-skylark/p/9008895.html
Copyright © 2011-2022 走看看