📜  以相反的顺序打印斐波那契数列(1)

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

以相反的顺序打印斐波那契数列

斐波那契数列是一个非常经典的数列,它的定义如下:

  • 第一项和第二项分别为 0 和 1。
  • 从第三项开始,每一项都等于前两项之和。

斐波那契数列的前几项为:0、1、1、2、3、5、8、13、21、34……

这里介绍如何以相反的顺序打印斐波那契数列。

解法

一般情况下,我们可以用递归或者循环来生成斐波那契数列。

以递归方式生成斐波那契数列的代码如下:

def fib(n):
    if n < 2:
        return n
    return fib(n - 1) + fib(n - 2)

以循环方式生成斐波那契数列的代码如下:

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

以上两种方式都是按正序生成斐波那契数列的方法。对于本题,我们需要将生成的数列逆序输出。那么,最简单的方法是先生成正序的斐波那契数列,再将其逆序输出即可。代码如下:

def print_fib_reverse(n):
    fib_list = [fib(i) for i in range(n)]
    fib_list.reverse()
    print(fib_list)

在这个代码中,我们先生成了长度为 n 的正序斐波那契数列,然后通过 reverse() 方法将其逆序输出。

总结

本文介绍了如何以相反的顺序打印斐波那契数列。我们先通过递归或者循环的方式生成正序的斐波那契数列,然后将其逆序输出即可。对于本题来说,这是最简单也是最直观的解法。