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
}