Factorial: visualización de niveles de recursión

Vanessa León

/* FACTORIAl: Cálculo del factorial con técnicas recursivas */
#include <stdio.h>
#define MAXNUM 16L          /*límite para que el factorial quepa en un long*/
long Factorial(long x);

int main()
{
long n = 0L;
long f;
printf(“\n Calculo del factorial de modo recursivo:\n\n”);

do {
printf(“Numero (0..%d): “,MAXNUM);
scanf(“%ld”,&n);
} while (n < 0L || n > MAXNUM);

putchar(‘\n’);
printf(“\n %ld! = %ld\n”,n,Factorial(n));
}
long Factorial(long x)
{
static int niv = 0;     /*para mostrar el nivel de recursión <1>*/

printf(“Entra en el nivel %d con x=%ld\n”,++niv,x);       /*entrada <2>*/

x = (x < 2) ? 1 : x*Factorial(x-1);             /*calcula factorial <3>*/

printf(“Sale del nivel %d devolviendo %ld\n”,niv–,x);   /*salida <4>*/

return x;                                       /*devuelve factor. <5>*/
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Factorial: visualización de niveles de recursión

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s