НачатьНачать бесплатно

Подсчёт количества вызовов функции

Рассмотрим классический пример рекурсии – последовательность Фибоначчи, представленную неотрицательными целыми числами, начиная с 0, где каждый элемент \(F(n)\) равен сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13, 21, .... Вам дана функция, которая возвращает кортеж с \(n\)-м элементом последовательности и количеством вызовов fib():

def fib(n):

  if n < 2:
    return (n, 1)

  fib1 = fib(n-1)
  fib2 = fib(n-2)

  return (fib1[0] + fib2[0], fib1[1] + fib2[1] + 1)

Сколько вызовов fib() потребуется для вычисления \(15\)-го и \(20\)-го элементов последовательности?

Это упражнение является частью курса

Практика задач для собеседования по программированию на Python

Посмотреть курс

Практическое интерактивное упражнение

Превратите теорию в практику с помощью одного из наших интерактивных упражнений

Начать упражнение