Eulersche Zahl mit Reihenentwicklung

_bella_

Mitglied
Hallo🙂
Ich muss ein Programm schreiben, dass die Eulersche Zahl mitHilfe der Reihenentwicklung berechnet. Habe dazu auch einen Code, aber irgendwas ist daran falsch, weil das gesuchte Ergebnis nie rauskommt...Habe schon selber lange gesucht, aber am eigenen Code Fehler finden ist immer nicht so ganz leicht..vielleicht kann mir jemand helfen?
Liebe grüße
Java:
public class Euler {
	private static float e = 0;

	public static float calc(int n) {
		float temp = 0;
		for (int i = 0; i <= n; i++) {
			temp = 1 / fak(i);
			e = e + temp;
		}
		return e;
	}

	public static float fak(int i) {
		float fak = 1;
		if(i>0){
		for (int j = i; j >0; j--) {
			fak = fak * j;
		}
		}
		return fak;
	}

}
 
Float ist hier nicht unbedingt der richtige Datentyp, da zu ungenau. Für die Methode calc wäre double und für fak ein long besser geeignet.
 
naja wir habn so tests, nach denen wir usn richten müssen, und bei n=2 z.B. müsste 2.5 rauskommen, bei mir kommt aber 4.5 raus...das kann ja nicht nur am datentyp liegen...
 
Java:
System.out.println(Euler.calc(2));
liefert 2.5 - da gibt es nichts zu bemängeln...
 
Wenn du die Methode calc im Programm öfters aufrufst müsstest du dann nicht "e = 0" irgendwo vor der Reihenentwicklung setzen, sonst würde ja nur ein Durchgang funktionieren. Dieser mit "1" wäre fatal für den 2. Aufruf.
 

Zurück
Oben