美文网首页
斐波那契数列

斐波那契数列

作者: Youngblaze | 来源:发表于2020-04-21 13:17 被阅读0次

    斐波那契数列

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。


    分析

    n(n>=0) 0 1 2 3 4 5 6 ... n
    F(n) 0 1 1 2 3 5 8 ... F(n-1)+F(n-2)
    解法一:
    • 递归

      当n==0时,F(n)=0。

      当n==1时,F(n)=1。

      当n>=2时,F(n)=F(n-1)+F(n-2)。

      # -*- coding:utf-8 -*-
      class Solution:
          def Fibonacci(self, n):
              if n<0:
                  return None
              elif n==0:
                  return 0
              elif n==1:
                  return 1
              else:
                  return self.Fibonacci(n-1)+self.Fibonacci(n-2)
      
    • 缺点:算法时间复杂度过大。

    解法二:
    • 递推循环

      # -*- coding:utf-8 -*-
      class Solution:
          def Fibonacci(self, n):
              if n<0:
                  return None
              elif n==0:
                  return 0
              elif n==1:
                  return 1
              else:
                  a = 0
                  b = 1
                  for i in range(n-1):
                      Fn = a + b
                      a = b
                      b = Fn
                  return Fn         
      

    相关文章

      网友评论

          本文标题:斐波那契数列

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