python实现斐波那契数列的函数

  • Post category:Python

要实现斐波那契数列,我们可以使用递归或循环的方式来实现。

递归方式实现斐波那契数列

递归方式就是利用函数调用自身的方式,将问题规模不断缩小,直至变得可以直接解决。

def fibonacci_recursion(n):
    if n <= 1:
        return n
    else:
        return fibonacci_recursion(n-1) + fibonacci_recursion(n-2)

在上面的代码中,我们定义了一个函数fibonacci_recursion,该函数接受一个参数n,返回斐波那契数列的第n项的值。当n<=1时,直接返回n;否则,递归计算出第n-1项和n-2项的值,然后相加返回即可。虽然递归代码看起来简洁,但是其时间复杂度较高,当n比较大时,递归的调用次数和运算量将会相当大,容易导致栈溢出等问题。

迭代方式实现斐波那契数列

迭代方式就是通过循环来实现,即从前往后计算斐波那契数列的每一项。

def fibonacci_iteration(n):
    if n <= 1:
        return n
    else:
        a, b = 0, 1
        for _ in range(n-1):
            a, b = b, a+b
        return b

在迭代方式中,我们首先判断n是否小于等于1,如果是直接返回n,否则定义两个变量ab来分别表示第0项和第1项,然后通过循环计算出第n项的值。循环的过程中,每次都将ab更新为上一项和当前项,然后通过它们来计算出下一项的值。当循环结束时,返回b即可。

这样,我们就用递归和迭代两种方式实现了斐波那契数列的求解。这个函数可以用于计算斐波那契数列的第n项的值。