📜  在 python 中反向打印斐波那契数列(1)

📅  最后修改于: 2023-12-03 15:37:26.900000             🧑  作者: Mango

在 Python 中反向打印斐波那契数列

斐波那契数列是一个以递归的方式定义的数列,其前两项为 0 和 1,后续项为前两项之和。在 Python 中,可以通过循环或递归的方式来实现该数列的计算。此外,还可以使用列表推导式来生成数列。

下面是一个使用循环来生成斐波那契数列并反向打印的示例程序:

def fibonacci(n):
    """生成斐波那契数列"""
    a, b = 0, 1
    for i in range(n):
        yield a
        a, b = b, a + b

# 反向打印斐波那契数列
for num in fibonacci(10)[::-1]:
    print(num)

该程序首先定义了一个生成器函数 fibonacci,该函数接受一个整数参数 n,表示要生成的斐波那契数列的项数。接着,使用循环的方式计算该数列并使用 yield 语句返回每一项的值。

在程序的主函数中,使用列表切片操作 [::-1] 将生成的斐波那契数列反转,并使用循环逐个打印出每一项的值。

下面是一个使用递归方式来生成斐波那契数列并反向打印的示例程序:

def fibonacci(n):
    """递归生成斐波那契数列"""
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# 反向打印斐波那契数列
for i in range(10, 0, -1):
    print(fibonacci(i-1))

该程序定义了一个递归函数 fibonacci,该函数接受一个整数参数 n,表示要生成的斐波那契数列的第 n 项的值。如果 n 小于等于 1,直接返回 n。否则,递归调用 fibonacci(n-1)fibonacci(n-2) 分别计算出前两项之和。

在程序的主函数中,使用 range 函数生成从 10 到 1 的整数序列,并使用循环依次调用 fibonacci 函数计算并打印出每一项的值。

最后,使用列表推导式来生成斐波那契数列并反向打印:

# 生成斐波那契数列并反向打印
fib = [0, 1] + [fib[i-1] + fib[i-2] for i in range(2, 10)][::-1]
print(fib)

该程序首先定义了一个列表 fib,该列表包含斐波那契数列的前两项 0 和 1。接着,使用列表推导式生成从第三项开始的斐波那契数列,并使用列表切片操作 [::-1] 将该数列反转。最后,打印出生成的斐波那契数列。

无论使用哪种方式,我们都可以在 Python 中很容易地生成斐波那契数列并反向打印。