Wo liegt der Fehler in meinen C++ Code?

... komplette Frage anzeigen

1 Antwort

Ich würde n außerhalb der Schleife deklarieren und mit 1 initialisieren.

Außerdem müsste es über der Schleife, wenn ich es richtig sehe k = f heißen, da n! = 1 * 2 * ... * n ist. Du darst das letzte Element nicht ausschließen.

Die while kannst du über k > 1 laufen lassen, da eine Multiplikation mit 1 nichts verändert.

Die Multiplikation müsste meines Erachtens  n = n * k lauten. 

Eine Variable ist zuviel. Ich würde einfach das k weg lassen und alternativ zu obigem Vorschlag pro Iteration n *= f rechnen, solange f > 1 ist.

_____________

Am aller-aller-einfachsten wäre eine for-Schleife:

//...
long n=1;
for(cin>>f;f>1;f--)
  n*=f;
//...

Probier es mal aus. Mit dem cin im Schleifenkopf bin ich mir nicht sicher.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?