Número de Euler

Olá galera, estou tentando fazer um programinha para calcular o número de euler, o e dos logaritmos naturais mas não estou conseguindo fazer ele!! alguem pode me dar uma ajuda!! Aqui vai a formula para o numero:
http://img178.imageshack.us/my.php?image=eullercm7.png

:shock: Que é isso, coisa do outro mundo?

poste seu codigo com suas duvidas que te ajudamos :stuck_out_tongue:

Você só precisa de um método para calcular o fatorial e colocar a iteração de soma num laço. Calcule o número de iterações baseando-se no número de casas decimais que você quiser.

Abraço,

Armando

É bem fácil resolver esse problema. Algumas dicas:

  1. Somatórios normalmente são implementados usando for. O somatório vai de 0 a infinito mas você não pode fazer um for de um a infinito, portanto terá que definir um máximo de iterações dependendo da precisão que você deseje. Com 100 iterações eu consegui uma precisão de 15 casas decimais, que eu creio ser suficiente.

  2. Você precisa de uma variável double que vai guardando o valor acumulado de iterações anteriores e a ela você soma o valor computado na iteração atual.

  3. Não é necessário calcular o fatorial a cada passo. Guarde uma variável para guardar o fatorial do termo anterior também, afinal o próximo fatorial vai ser o anterior vezes o próximo termo. Isso poupa bastante tempo e não torna necessário implementar um método para calcular fatorial.

Tente fazer algo com essas dicas, se não conseguir volte a postar.

[code]public class B {

public static double calcula_e(int n) {
	int fat=1; // o primeiro fatorial -- 0! =1
	double e=1.0; // primeir termo da série 
	for(int i=1;i<n;i++) {
		fat = // informe qual o valor do fatorial nesse momento
		e = // e aqui qual o valor do e nesse momento
	} // perceba que 'fat' e 'e' são incrementadas a cada passo
	return e;
}

public static void main(String[] args) {
	System.out.println("E original = " + Math.E);
	for(int i=0;i<15;i++) {
		double e = calcula_e(i), diff = Math.abs(Math.E - e);

		System.out.println("termo[" + i + "] = " + e + "\tdiff = " + diff);
	}
	
}

}[/code]

ainda não consegui!!