#include <cstdlib>
#include <iostream>
using namespace std;
//S = 1 + 1/1! + 1/2! + 1/3! + 1/N!
double calculaS(double);
double calculaFatorial(double);
int main(int argc, char *argv[])
{
double a;
printf("Calcula somas do tipo S = 1 + 1/1! + 1/2! + 1/3! + 1/N!\n");
printf("Para N > 1000 a soma S se aproxima do numero \'e\', base dos logaritmos naturais.\n");
printf("Alias, numeros como e, sen(x), cos(x), tan(x), log(x) etc. sao calculados assim.\n\n");
printf("Forneca N: ");
scanf("%lf", &a);
printf("Soma S = %0.20lf\n\n", calculaS(a));
system("PAUSE");
return EXIT_SUCCESS;
}
double calculaS(double n) {
double denominador = 0.0;
double soma = 0.0;
while(denominador<=n) {
soma += 1.0/calculaFatorial(denominador);
denominador+=1.0;
}
return soma;
}
double calculaFatorial(double n) {
double fat = 1.0;
double i = 1.0;
if((n==0.0) || (n==1.0)) return 1.0;
while(i<=n)
fat*=i++;
return fat;
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.