miércoles, 21 de abril de 2010

Factorial en C++

Un problema muy frecuente cuando estamos dando nuestros primeros pasos en la programación, es la realización de un algoritmo para encontrar el factorial de un número dado (simbolizado como n!). Para solucionar este problema, el día de hoy les traigo dos soluciones realizadas por mi. Pero primero, ¿qué es el factorial de un número?


"Para todo número natural n, se llama n factorial o factorial de n al producto de todos los naturales desde 1 hasta n"
Fuente: Wikipedia


El prototipo de la función factorial que use para las dos soluciones es:

//Prototipo de la función factorial
long int factorial(unsigned int numero);

En el primer algoritmo nos valemos de un ciclo, en el cual acumularemos el resultado de todas las multiplicaciones desde uno (1) hasta llegar a n, dando fin al bucle, y entregando el resultado:

//Factorial usando ciclos
long int factorial(unsigned int numero)
{
long int lFact = 1L;
for(int i = 2; i <= numero; i++)
lFact *= i;
return lFact;
}

En el segundo algoritmo, tomamos como base las características que tiene la función factorial, y hacemos un procedimiento recursivo hasta encontrar el factorial requerido:

//Factorial usando recursión
long int factorial(unsigned int numero)
{
if(numero == 0U || numero == 1U)
return 1L;
return numero * factorial(numero - 1U);
}

1 comentario: