斐波那契数列的实现算法

Posted mydesky2012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列的实现算法相关的知识,希望对你有一定的参考价值。

# 递归。重复计算,时间复杂度O(2^n)- O(1) ,空间复杂度为O(n)
def fRecursive(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fRecursive(n - 1) + fRecursive(n - 2)

# a记录f(n-2)的值,b记录f(n-1)的值,不断更新a和b的值。非递归,空间复杂度O(1),时间复杂度O(n)。
def f(n):
    a, b, c, i = 0, 1, 1, 2
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        while i <= n:
            c = a + b
            a = b
            b = c
            i = i + 1
        return c

if __name__ == "__main__":
    n = 10
    print(fRecursive(n))
    print(f(n))

技术图片

 

以上是关于斐波那契数列的实现算法的主要内容,如果未能解决你的问题,请参考以下文章

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码

编程实践Linux Shell 编程:使用 循环和递归 实现斐波那契数列代码

基础算法java实现斐波那契数列

尾递归实现斐波那契数列

用递归法计算斐波那契数列的第n项

js算法集合 javascript实现斐波那契数列 (兔子数列)