斐波那契数列(答辩面试题)

能使用数据,但不会使用太大空间

能够使用for循环,能够取里面的数据,但是不是生成序列的结果,而是方式,空间小。

classFibIterator(object):"""斐波那契数列迭代器"""def__init__(self, n):"""

        :param n: int, 指明生成数列的前n个数

        """self.n = n# current用来保存当前生成到数列中的第几个数了self.current =0# num1用来保存前前一个数,初始值为数列中的第一个数0self.num1 =0# num2用来保存前一个数,初始值为数列中的第二个数1self.num2 =1def__next__(self):"""被next()函数调用来获取下一个数"""ifself.current < self.n:            num = self.num1            self.num1, self.num2 = self.num2, self.num1+self.num2            self.current +=1returnnumelse:raiseStopIterationdef__iter__(self):"""迭代器的__iter__返回自身即可"""returnselfif__name__ =='__main__':    fib = FibIterator(10)fornuminfib:        print(num, end=" ")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容