Problem bei Lösung
-
In einer Aufgabe soll die Summe von 1/n! ,mit n von 0 bis unendlich, berechnet werden.
Mein Ansatz ist folgender:#include <iostream>
#include <iomanip>
using namespace std;int main()
{
cout << endl << "\t\tEulersche Zahl" << endl << "----------------------------------------------";
cout << endl;float x,y;
float e;for (x = 1; x < 20 ; x++);
{y = 1;
y *= x;e += 1/y;
cout << e << endl;
}return 0;
}Wo liegt der Fehler?
Da kommt irgendwas mit 35,xxx raus.
Rauskommen müsste 2,17xxx.
Ich versteh den Rechenweg nicht.
y *= x ist doch die Fakultät und
e += 1/y die Summe des Umkehrwerts, oder?
Muss das y = 1 woanders hin?Bin grad am verzweifeln!
Für hilfreiche Tipps wäre ich sehr dankbar!
-
1. variablen so spät wie möglich initialisieren (x brauchst du nur in der for-schleife, außerdem reicht es da, wenn x int ist)
2. e einen definierten startwert geben (z.b. float e=1)
3. y nicht immer wieder auf 1 setzen
4. das semikolon hinter for(...) entfernen
kurz, das:
float y = 1; float e = 1; for (int x = 1; x < 20 ; x++) { y *= x; e += 1/y; cout << e << endl; }bleibt übrig und ich geh schlafen
