5.2.3 Análisis del factorial recursivo e iterativo.(En desarrollo)

 

En este tema se aborda el análisis del factorial y para ello se explica primero lo que es, como se calcula, y se dan algunos ejemplos, posterior a ello se muestra el programa en lenguaje C usando recursividad y se explica su funcionamiento, después se muestra el programa en lenguaje C usando una estructura de repetición o ciclos y se explica el programa.

 

El factorial es el producto de los enteros entre 1 y n, tal que n es un número entero y positivo y se representa como n!. Se debe considerar que el factorial de 0 es 1, 1 es 1 y 2 es 2.

 

 

Por ejemplo, el factorial de 5 es igual a 5*4*3*2*1=120 y el factorial de 3 es 3*2*1=6 el factorial de 0 se define como 1. Se escribe la definición de la función de la siguiente forma:

 

n!=1 if(n==0); 0!=1

de lo contrario

n!=n*(n-1)*(n-2)*…*1 if(n>0)

 

Para evitar las abreviaturas, la definición de n!  se tiene que listar la fórmula para n! por cada valor por separado de la siguiente manera:

 

0!=1

1!=1

2!=2*1

3!=3*2*1

 

Explicado que es el factorial se procede a mostrar como se puede implementar la idea en un programa en lenguaje C.

 

Función del factorial usando ciclos o iterativa.

A continuación se muestra la función:

 

long int factorial(int n)

{

 int prod=1;

 for (int contador=n; contador>0; contador--)

  prod*=contador;

 return (prod);

}

 

Este programa se denomina iterativo porque requiere la repetición explicita de cierto proceso hasta la condición indicada.

 

Función del factorial usando recursividad.

A continuación se muestra la función:

 

long int Factorial(int n)

{

 if (n == 0)

  return 1;

 else

return (n * Factorial (n - 1)); //aqui se llama a si misma

}