Как получить 0 как первый член моей секвенции Фибоначчи? - PullRequest
1 голос
/ 11 мая 2019

Я не могу понять, как отобразить 0 в качестве выхода моей функции последовательности Фибоначчи, когда вход равен 0. Как я могу сделать это, используя цикл while?

def Fibonacci(n):
    i= 0
    present = 1
    previous = 0
    while i <= n:
        nextterm = present + previous

        present = previous
        previous = nextterm
        i += 1
    return nextterm 

I expect the output of Fibonacci(0) to be 0

Ответы [ 2 ]

4 голосов
/ 11 мая 2019

Ваш текущий код можно исправить, вернув present вместо nextterm.

Если вам интересно, обычная реализация Фибоначчи в Python часто выглядит следующим образом. Имена переменных в этой версии кажутся мне более интуитивными.

def fib(n):
    cur, nxt = (0, 1)
    while n > 0:
        cur, nxt = (nxt, cur + nxt)
        n -= 1
    return cur
0 голосов
/ 11 мая 2019

Он должен возвращать 1, его gona войдет в цикл, когда n = 0, и установит 1 в следующем.

...