美文网首页
斐波那契数列

斐波那契数列

作者: 汤问 | 来源:发表于2019-04-02 11:04 被阅读0次
    • 递归生成斐波那契数列

      def fib(n:int):
          if n <2:
             return  n
          return fib(n-1) + fib(n-2)
      
    • 给递归加个缓存

      cache = {}
      def fib(n:int):
        if n<2:
            return n
        result = cache.get(n,None)
        if result is None:
            cache[n] = fib(n-1) + fib(n-2)
            return cache[n]
        return result
      
    • 创建斐波那契数列迭代器

      class Fib:
        def __init__(self,n:int):
            self.stop = n
            self.index = 1
            self.a,self.b = 0,1
      
        def __iter__(self):
            return self
      
        def __next__(self,):
            if self.index <= self.stop:
                self.a,self.b = self.b ,self.a+self.b
                self.index +=1
                return self.a
            raise StopIteration
      

    相关文章

      网友评论

          本文标题:斐波那契数列

          本文链接:https://www.haomeiwen.com/subject/spjwbqtx.html