Imprimir el Factorial
En este paso, mejorarás el programa de cálculo factorial para proporcionar una salida más detallada y manejar diferentes escenarios de entrada. Modificaremos el archivo factorial.c para mejorar la presentación de los resultados factoriales.
Actualiza el archivo factorial.c:
cd ~/project
nano factorial.c
Reemplaza el contenido anterior con la siguiente implementación mejorada:
#include <stdio.h>
unsigned long long factorialLoop(int n) {
unsigned long long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
void printFactorialDetails(int n, unsigned long long factorial) {
printf("Detalles del Cálculo del Factorial:\n");
printf("Número (n): %d\n", n);
printf("Factorial (n!): %llu\n", factorial);
printf("Expansión Factorial: ");
for (int i = 1; i <= n; i++) {
printf("%d%s", i, (i < n) ? " × " : " = ");
}
printf("%llu\n", factorial);
}
int main() {
int n;
printf("Ingrese un entero no negativo para calcular su factorial: ");
scanf("%d", &n);
if (n < 0) {
printf("Error: El factorial no está definido para números negativos.\n");
return 1;
}
if (n > 20) {
printf("Advertencia: El factorial para números grandes puede causar desbordamiento de enteros.\n");
}
unsigned long long result = factorialLoop(n);
printFactorialDetails(n, result);
return 0;
}
Compila y ejecuta el programa:
gcc factorial.c -o factorial
./factorial
Salida de ejemplo:
Ingrese un entero no negativo para calcular su factorial: 5
Detalles del Cálculo del Factorial:
Número (n): 5
Factorial (n!): 120
Expansión Factorial: 1 × 2 × 3 × 4 × 5 = 120
Mejoras clave en esta versión:
- Se agregó una función detallada
printFactorialDetails().
- Muestra la expansión factorial completa.
- Incluye una advertencia para números grandes.
- Proporciona una salida clara e informativa.