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 😉


Anmelden zum Antworten