Мои два подхода к решению задачи Фибоначчи Last Di git на Python - PullRequest
0 голосов
/ 09 июля 2020

Я новичок ie здесь. Если я что-то делаю неправильно, покажите мне терпимость.

Я пытался решить эту проблему: Problem_Picture_1 Problem_Picture_2

Мое первое решение не помогло работа:

# Uses python3
import sys

# Uses python3
def get_fibonacci_last_digit(n):
    fib = [0, 1]
    if n <= 1:
        return n

    for i in range(2, n):
        current = (fib[i-1] + fib[i-2]) % 10
        fib.append(current)
    return fib[-1]

n = int(input())

if __name__ == '__main__':
    input = sys.stdin.read()
    n = int(input)
    print(get_fibonacci_last_digit(n))

Но мое второе решение сработало:

# Uses python3
def calc_fib(n):
    fib = [0, 1]
    if n <= 1:
        return n

    for i in range(2, n+1):
        current = (fib[i-1] + fib[i-2]) % 10
        fib.append(current)
    return fib[-1]

n = int(input())
print(calc_fib(n))

В чем разница между этими двумя подходами? Почему не сработало мое первое решение? Пожалуйста, объясните мне.

Изменить: Когда я использовал свой первый подход, он все еще работает. Он не мог вернуть число

Когда я работал со своим первым подходом, он мог вернуть число

1 Ответ

0 голосов
/ 09 июля 2020

Объект диапазона (A, B) выполняет итерацию от A (включительно) до B (исключая). Например, диапазон (2, 5) вернет (2, 3, 4).

PS - Пожалуйста, используйте правильный отступ при публикации вопроса

...