Comece agoraComece grátis

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 exercicio faz parte do curso

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

Ver curso

exercicio interativo prático

Transforme teoria em prática com um dos nossos exercicio interativos

Iniciar exercicio