ComeçarComece de graça

Calcule o número de chamadas de função

Vamos considerar um exemplo clássico de recursão – a sequência de Fibonacci, representada por inteiros não negativos começando em 0, em que cada elemento \(F(n)\) é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8, 13, 21, .... Você recebeu uma função que retorna uma tupla com o \(n\)-ésimo elemento da sequência e a quantidade de chamadas a fib() usadas:

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)

Quantas chamadas a fib() são necessárias para calcular o \(15^{th}\) e o \(20^{th}\) elementos da sequência?

Este exercício faz parte do curso

Praticando questões de entrevista de código em Python

Ver curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Começar o exercício