Python程序查找斐波那契数列(不使用递归)

Python程序查找斐波那契数列(不使用递归)

斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,特别指出:第0项是0,第1项是1。从第三项开始,每一项都等于前两项之和。该数列自然界中广泛存在,例如”菠菜的排列方式”和 “家兔的繁殖问题”等。接下来我们将使用Python程序查找斐波那契数列,而不使用递归的方法。

更多Python相关文章,请阅读:Python 教程

背景知识

斐波那契数列的递归算法是较为简单的,但是效率很低。因此我们采用非递归的方式,来提高程序的执行效率。

代码实现(Python)

方法一:while循环

使用while循环的方式,我们可以依次求出斐波那契数列中每个数的值。

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

方法二:生成器

生成器是Python中一个很强大的数据类型。它可以让你使用while循环从一个序列中依次取出数据,并且可以在循环过程中修改数据。下面是一个使用生成器来计算斐波那契数列数值的例子:

def fibonacci(n):
    a, b = 0, 1
    for i in range(n):
        yield b
        a, b = b, a + b

使用生成器的方式不需要一次性计算完所有的数值,而是可以在需要的地方取出数值,这样可以比第一种方法更为灵活。

结论

以上两种方法都能够很好地完成Python程序查找斐波那契数列(不使用递归)的任务。但是不同的场景下,选择不同的方法可以更好地改进程序效率,从而提高程序的执行效率。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程