斐波那契不输出 0

fibonacci doesn't output 0

我写了一个简短的代码,它输出斐波那契数列的前 n 个数字,其中 n 是传递参数的值,每个数字都打印在一个新行中。 我的问题是输出不是从 0 开始,而是从 1 开始。如何在输出中也得到 0?

def fibonacci(n):
    fib1 = 0
    fib2 = 1
    for x in range(0,n):
        print("%d\n" %(fib2), end = " ")
        next = fib1 + fib2 
        fib1 = fib2
        fib2 = next

原来是这样输出的,为什么第一个移进去之后的数字是? output

def fibonacci(n):
    fib1 = 0
    fib2 = 1
    for x in range(0,n):
        print("%d\n" %(fib1), end = " ")
        next = fib1 + fib2 
        fib1 = fib2
        fib2 = next

line #5 处简单打印 fib1 而不是 fib2 如果打印 fib21

,您如何期望开始时的输出 0

您可以使用:

def fibonacci(n):
    fib1 = 0
    fib2 = 1
    for x in range(0, n):
        print("%d" %(fib1))
        fib1, fib2 = fib2, fib1 + fib2

或者,您可以只切换 fib1fib2 的值,而不会再弄乱您的代码。

如其他示例中所述,您可以解决您的问题。我正在分享更多的方法。更短的代码

 def fibonacci_fun(n):
  a, b = 0, 1
  for x in range(2, n):
    print('%s' % a)
    a, b = b, a+b

 fibonacci_fun(n)

另一种使用 while 循环的方法

def fibonacci(n):
  a, b = 0, 1
  while a <= n:
    print(a)
    a, b = b, a+b

fibonacci(n)