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;
}




Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br