Programación y sintaxis · revisado en agosto de 2026
Recursión
La recursión es una técnica en la que una función se llama a sí misma para resolver un problema dividiéndolo en versiones más pequeñas del mismo problema, hasta llegar a un caso base que se resuelve directamente sin más llamadas.
def factorial(n):
if n <= 1: # caso base
return 1
return n * factorial(n - 1)Preguntas frecuentes
¿Qué es el caso base y por qué es obligatorio?
Es la condición que detiene las llamadas recursivas y devuelve un valor directo. Sin un caso base alcanzable, la función se llamaría a sí misma indefinidamente hasta agotar la pila de llamadas (RecursionError en Python).
¿La recursión siempre es mejor que un bucle?
No. Un bucle suele ser más eficiente en memoria porque no acumula llamadas en la pila; la recursión se prefiere cuando el problema es naturalmente recursivo, como recorrer un árbol o una estructura anidada.
¿Qué es un caso de recursión con más de una llamada?
Cuando la función se llama a sí misma más de una vez por invocación (como en el cálculo ingenuo de Fibonacci); esto puede volverse muy costoso si no se cachean resultados repetidos.