Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2012, 15:20
DickGumshoe
 
Fecha de Ingreso: enero-2012
Mensajes: 68
Antigüedad: 12 años, 3 meses
Puntos: 0
Funciones recursivas

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
  1. #include <stdio.h>
  2. long fact(int n) {
  3. if (n==1) /* Aseguramos que termine */
  4. return 1;
  5. return n * fact (n-1); /* Si no es 1, sigue la recursión */
  6. }
  7. main() {
  8. int num;
  9. printf("Introduzca un número entero: ");
  10. scanf("%d", &num);
  11. printf("Su factorial es: %ld\n", fact(num));
  12. }

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.