Advertisement
nq1s788

Untitled

Nov 8th, 2024
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.21 KB | None | 0 0
  1. В этой задаче нужно посчитать n-е число Фиббоначи, это классическая задача на динамическое программирование.
  2. Напомним, что числа Фиббоначи задаются так: f[0] = 1, f[1] = 1, f[n] = f[n - 1] + f[n - 2]. Заведем массив f, будем его заполнять от нулевого элемента до n-го.
  3.  
  4. Пример кода на python:
  5. n = int(input())
  6. f = [0] * (n + 1)
  7. f[0] = 1 #база динамики
  8. f[1] = 1
  9. for i in range(2, n + 1):
  10.     f[i] = f[i - 1] + f[i - 2]
  11. print(f[n])
  12.  
  13. В качестве оптимизации по памяти можно убрать массив f, хранить только два последних числа Фиббоначи:
  14. n = int(input())
  15. prev = 1 #предыдущее число Фиббоначи
  16. cur = 1 #текущее число Фиббоначи
  17. for i in range(2, n + 1):
  18.     cur, prev = cur + prev, cur #чтобы перейти к следующему числу, складываем в текущий сумму двух, а изначальный "текущий" переходит в предыдущий
  19. print(cur)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement