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
exercicio interativo prático
Transforme teoria em prática com um dos nossos exercicio interativos
Iniciar exercicio