Pular para o conteúdo

Calculando fatorial

Eu estava em casa num feriadão e como não nada melhor para fazer resolvi fazer esse "programinha" em C++. Ele efetua o cálculo de no máximo 170! (170 fatorial). Para quem está começando esse é um pequeno exemplo sobre como trabalhar com funções em C++.
David Lorente Gordon_Freeman
Hits: 39.014 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Eu estava em casa num feriadão e como não nada melhor para fazer resolvi fazer esse "programinha" em C++. Ele efetua o cálculo de no máximo 170! (170 fatorial). Para quem está começando esse é um pequeno exemplo sobre como trabalhar com funções em C++.
Download fatorial.cpp Enviar nova versão

Versões atualizadas deste script

Esconder código-fonte

//********************************************
//           Fatorial
//   Desenvolvido por David Lorente 07/09/04   
//********************************************

#include <stdio.h>
#include <stdlib.h>


double fatorial(double numero);
void imprime();
int  main()
{
   imprime();
   return 0;
}

void imprime()

{
   double numero;
   system("clear");
   printf("+++Fatorial+++");
   printf("\n\nDigite um numero inteiro para o calulo do fatorial: ");
   scanf("%lf", &numero);
   
   printf("O resultado e: %.0lf\n\n", fatorial(numero));
   getchar();
}

double fatorial(double numero) //O calculo do fatorial e feito aqui

{
   double aux;
   aux = numero;
   while(numero > 1)
   {
      aux = aux * (numero-1);
      numero--;
   }
   return (aux);
}

Teorema de Pitágoras em C++

Número par ou ímpar e positivo ou negativo

Binário para decimal

Visualizador hexadecimal

Inverter links de downloads

#1 Comentário enviado por jllucca em 07/09/2004 - 10:56h
Tipo, depois de uma rápida olhada no código fonte não percebi nada que precise de C++. Alem do que todas as funções que tu utiliza são "ANSI C", assim o programa está escrito em C e não em C++.
#2 Comentário enviado por Gordon_Freeman em 11/09/2004 - 00:14h
Caro jllucca,
Bem, em primeiro lugar quero desculpar me pela gafe que cometi :(. O pouco que aprendi de c++ (ou c?! agora não tenho mais certeza sobre qual delas estou falando.) foi atravez de um livro velho que tenho aqui em casa. Esse livro traz essas funções como sendo funções de c++, se o que você diz é verdade então esse livro é uma @#$%. Mas de qualquer modo se este programa está escrito em C, eu teria conseguido compilá-lo com o gcc, estou certo?. Mas este não o fez, tenho que usar para isso o g++. Agora estou mesmo confuso. Gostaria que, se possível esclarecesse isso para mim :).

[]'s Freeman
#3 Comentário enviado por removido em 18/02/2008 - 04:14h
Outra sugestão de cálculo, usando o "for" no lugar do "while":

for (aux = numero; numero > 1; numero--)
aux = aux * (numero - 1);

[]´s
#4 Comentário enviado por oberlan em 24/05/2010 - 20:11h
O algoritmo tem um pequeno erro! Se digitarmos 0 ele retorna 0, e na verdade 0! = 1 ;)
Mesmo assim, ótimo algoritmo :D
#5 Comentário enviado por uilianries em 08/12/2012 - 10:09h
Realizei uma modificação no código, adicionando a chamada recursiva ;)
#6 Comentário enviado por EnzoFerber em 20/12/2012 - 17:04h
double fat( double n ) { return (n == 1) ? 1 : n * fat(n-1); }

Contribuir com comentário

Entre na sua conta para comentar.