"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);
}
excelente codigo.
ResponderEliminar