
Solução em C do Problema 8
/*
* SOLUCAO 1: calcula 1*2*3...*n, nessa ordem.
*
* Pergunta:
* Use o programa para calcular 5! depois 10! depois 15! ...
* Aconteceu de estranho?
*/
#include <stdio.h>
int main() {
int n, /* guarda o numero dado */
contador,
fatorial;
printf("\n\tCalculo do fatorial de um numero\n");
printf("\nDigite um inteiro nao-negativo: ");
scanf("%d", &n);
/* inicializacoes */
fatorial = 1;
contador = 2;
while (contador <= n) {
fatorial = fatorial * contador;
contador = contador + 1;
}
printf("O valor de %d!: %d\n", n, fatorial);
return 0;
}
/*
* SOLUCAO 2: usa o comando for e calcula 1*2*3*...*(n-1)*n
* nessa ordem.
*/
#include <stdio.h>
int main()
{
int n, /* guarda o numero dado */
i,
nfat;
printf("\n\tCalculo do fatorial de um numero\n");
printf("\nDigite um inteiro nao-negativo: ");
scanf("%d", &n);
/* inicializacoes */
nfat = 1;
for (i = 2; i <= n; i++)
{ /* as chave sao superfluas */
nfat = nfat * i;
}
printf("O valor de %d!= %d\n", n, nfat);
return 0;
}
/*
* SOLUCAO 3: usa o comando for e calcula 1*n*(n-1)*(n-2)...*2,
* nessa ordem.
*/
#include <stdio.h>
int main()
{
int n, /* guarda o numero dado */
i,
nfat;
printf("\n\tCalculo do fatorial de um numero\n");
printf("\nDigite um inteiro nao-negativo: ");
scanf("%d", &n);
/* inicializacoes */
nfat = 1;
for (i = n; i > 1; i--)
{ /* as chave sao superfluas */
nfat = nfat * i;
}
printf("O valor de %d!= %d\n", n, nfat);
return 0;
}
História
da Computação | Listas de
Exercícios | Problemas Resolvidos | macmulti@ime.usp.br