Recursividad de C++
Recursividad de C++
En este tutorial, aprenderemos sobre la función recursiva en C++ y su funcionamiento con la ayuda de ejemplos.
Una función que se llama a sí misma se conoce como función recursiva. Y esta técnica se conoce como recursividad.
Funcionamiento de la recursividad en C++
void recurse()
{
... .. ...
recurse();
... .. ...
}
int main()
{
... .. ...
recurse();
... .. ...
}
La siguiente figura muestra cómo funciona la recursividad llamándose a sí misma una y otra vez.

La recursividad continúa hasta que se cumple alguna condición.
Para evitar la repetición infinita, se puede usar la declaración if...else (o un enfoque similar) donde una rama realiza la llamada recursiva y la otra no.
Ejemplo 1:factorial de un número usando recursividad
// Factorial of n = 1*2*3*...*n
#include <iostream>
using namespace std;
int factorial(int);
int main() {
int n, result;
cout << "Enter a non-negative number: ";
cin >> n;
result = factorial(n);
cout << "Factorial of " << n << " = " << result;
return 0;
}
int factorial(int n) {
if (n > 1) {
return n * factorial(n - 1);
} else {
return 1;
}
}
Salida
Enter a non-negative number: 4 Factorial of 4 = 24
Funcionamiento del Programa Factorial

Como podemos ver, el factorial()
la función se está llamando a sí misma. Sin embargo, durante cada llamada, hemos disminuido el valor de n por 1
. Cuando n es menor que 1
, el factorial()
finalmente, la función devuelve la salida.
Ventajas y desventajas de la recursividad
A continuación se muestran los pros y los contras de usar la recursividad en C++.
Ventajas de la recursividad de C++
- Hace que nuestro código sea más corto y limpio.
- La recursividad es necesaria en problemas relacionados con estructuras de datos y algoritmos avanzados, como Graph y Tree Traversal.
Desventajas de la recursividad de C++
- Se necesita mucho espacio de pila en comparación con un programa iterativo.
- Utiliza más tiempo de procesador.
- Puede ser más difícil de depurar en comparación con un programa iterativo equivalente.
Lenguaje C