Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В этой задаче нужно посчитать n-е число Фиббоначи, это классическая задача на динамическое программирование.
- Напомним, что числа Фиббоначи задаются так: f[0] = 1, f[1] = 1, f[n] = f[n - 1] + f[n - 2]. Заведем массив f, будем его заполнять от нулевого элемента до n-го.
- Пример кода на python:
- n = int(input())
- f = [0] * (n + 1)
- f[0] = 1 #база динамики
- f[1] = 1
- for i in range(2, n + 1):
- f[i] = f[i - 1] + f[i - 2]
- print(f[n])
- В качестве оптимизации по памяти можно убрать массив f, хранить только два последних числа Фиббоначи:
- n = int(input())
- prev = 1 #предыдущее число Фиббоначи
- cur = 1 #текущее число Фиббоначи
- for i in range(2, n + 1):
- cur, prev = cur + prev, cur #чтобы перейти к следующему числу, складываем в текущий сумму двух, а изначальный "текущий" переходит в предыдущий
- print(cur)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement