Фибоначчи не выводит 0 - PullRequest
       12

Фибоначчи не выводит 0

0 голосов
/ 03 ноября 2019

Я написал короткий код, который выводит первые 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

Итак, это вывод, почему цифры послепервый переехал? выход

Ответы [ 3 ]

0 голосов
/ 03 ноября 2019

Вы можете использовать:

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

В качестве альтернативы, вы можете просто переключать значения fib1 и fib2, не вмешиваясь в ваш код.

0 голосов
/ 03 ноября 2019

как уже упоминалось в других примерах, вы можете решить свою проблему .. Я поделюсь несколькими другими способами сделать это .. более короткий код

 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)
0 голосов
/ 03 ноября 2019
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

Простая печать fib1 вместо fib2 при line #5 Как вы ожидаете вывод 0 при запуске, если вы напечатали fib2, что 1

...