Número de Euler

6 respostas
_

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

6 Respostas

wswillian

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

peron

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

A

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

David

É 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.

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

}
_

ainda não consegui!!

Criado 26 de setembro de 2006
Ultima resposta 26 de set. de 2006
Respostas 6
Participantes 6