Hola.
En el manual que estoy siguiendo, he llegado al tema de funciones recursivas.
Para entenderlas, estoy guiándome del único ejemplo que viene.
Es este:
Código C:
Ver original#include <stdio.h>
long fact(int n) {
if (n==1) /* Aseguramos que termine */
return 1;
return n * fact (n-1); /* Si no es 1, sigue la recursión */
}
main() {
int num;
printf("Introduzca un número entero: "); printf("Su factorial es: %ld\n", fact
(num
)); }
Del código, entiendo que si n es uno termina la función. Pero
return n * fact (n-1);
no lo entiendo muy bien.
¿Cómo voy a multiplicar n por la función llamada factorial, si la primera vez no ha obtenido ningún valor? El resultado daría 0, entonces...
¿Alguien podría explicármelo...?
La verdad, no entiendo muy bien las funciones recursivas...
Muchas gracias.
Saludos.