English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
función recursiva
En este artículo, aprenderá a crear funciones recursivas. Las funciones que se llaman a sí mismas.que llama a sí mismafunción
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La siguiente imagen muestra cómo se realiza la recursión.
La recursión continúa hasta que se cumpla alguna condición.
Para evitar la recursión infinita, se puede usar en una rama de la recursión y en la otra no.if ... else(o un método similar).
// factorial(n) = 1*2*3*...*n #include <iostream> using namespace std; int factorial(int); int main() { int n; cout << "Ingrese un número para buscar su factorial: "; cin >> n; cout << "número " << n << " su factorial= " << factorial(n); return 0; } int factorial(int n) { if (n > 1) { return n*factorial(n-1; } else { return 1; } }
Resultado de salida
Ingrese un número para buscar su factorial: 4 número 4el factorial de 24
Supongamos que el usuario ingresa4y se pasa a la función factorial().
En la primera función factorial(), se pruebaifdentro de if true. return num*factorial(num-1La sentencia se ejecuta, llamando a la segunda función factorial() y pasando el parámetro num-1por3.
En la segunda función factorial(), se prueba la expresión dentro de if true. return num*factorial(num-1La sentencia se ejecuta, llamando a la tercera función factorial() y pasando el parámetro num-1por2.
En la tercera función factorial(), se prueba la expresión dentro de if true. return num*factorial(num-1La sentencia se ejecuta, llamando a la cuarta función factorial() y pasando el parámetro num-1es1.
En la cuarta función factorial(), se prueba la expresión dentro de if(false).return 1Se ejecuta la sentencia ;, se regresa1Hasta la tercera función factorial().
La tercera función factorial()2Regreso a la segunda función factorial().
La segunda función factorial()6Regreso a la primera función factorial().
Finalmente, la primera función factorial()24Regreso a la función main(), que se mostrará en la pantalla.