ComenzarEmpieza gratis

Calcula el número de llamadas a la función

Vamos a ver un ejemplo clásico de recursión: la sucesión de Fibonacci, representada por enteros no negativos empezando en 0, donde cada elemento \(F(n)\) es la suma de los dos anteriores: 0, 1, 1, 2, 3, 5, 8, 13, 21, .... Tienes una función que devuelve una tupla con el elemento n-ésimo de la sucesión y el número de llamadas 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)

¿Cuántas llamadas a fib() se necesitan para calcular los elementos \(15^{th}\) y \(20^{th}\) de la sucesión?

Este ejercicio forma parte del curso

Practicing Coding Interview Questions in Python

Ver curso

Ejercicio interactivo práctico

Pon en práctica la teoría con uno de nuestros ejercicios interactivos

Empezar ejercicio