Imprimir o Fatorial
Neste passo, você aprimorará o programa de cálculo de fatorial para fornecer uma saída mais detalhada e lidar com diferentes cenários de entrada. Modificaremos o arquivo factorial.c para melhorar a apresentação dos resultados do fatorial.
Atualize o arquivo factorial.c:
cd ~/project
nano factorial.c
Substitua o conteúdo anterior pela seguinte implementação aprimorada:
#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("Detalhes do Cálculo do Fatorial:\n");
printf("Número (n): %d\n", n);
printf("Fatorial (n!): %llu\n", factorial);
printf("Expansão do Fatorial: ");
for (int i = 1; i <= n; i++) {
printf("%d%s", i, (i < n) ? " × " : " = ");
}
printf("%llu\n", factorial);
}
int main() {
int n;
printf("Digite um inteiro não negativo para calcular seu fatorial: ");
scanf("%d", &n);
if (n < 0) {
printf("Erro: O fatorial não está definido para números negativos.\n");
return 1;
}
if (n > 20) {
printf("Aviso: O fatorial para números grandes pode causar estouro de inteiro.\n");
}
unsigned long long result = factorialLoop(n);
printFactorialDetails(n, result);
return 0;
}
Compile e execute o programa:
gcc factorial.c -o factorial
./factorial
Exemplo de saída:
Digite um inteiro não negativo para calcular seu fatorial: 5
Detalhes do Cálculo do Fatorial:
Número (n): 5
Fatorial (n!): 120
Expansão do Fatorial: 1 × 2 × 3 × 4 × 5 = 120
Melhorias-chave nesta versão:
- Adicionada uma função detalhada
printFactorialDetails()
- Exibe a expansão completa do fatorial
- Inclui um aviso para números grandes
- Fornece uma saída clara e informativa