Frage zu return
-
Hallo,
also ich will hier die faktorielle einer zahl berechnen:
#include<iostream> using std::cin; using std::endl; using std::cout; int fact(int); int zahl = 0; int main() { cin >> zahl; fact(zahl); cout << fact(zahl) << endl; return 0; } int fact(int a) { if (a == 0) { return 1; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! } else { return a * fact(a-1); } }
Funktioniert soweit auch alles, was mir dabei nur unklar ist warum bei der if abfrage ich return 1 zurückgeben muss und nicht return 0?
kann mir das wer erklären?
danke & lg
-
Probier es aus, und du wirst es wissen
-
Die Fakultät von 0 ist 1.
-
Waere ja auch bloed, wenn ich mir so viel Arbeit mit dem Multiplizieren gemacht habe und dann alles mit 0 mal genommen wird. Dann kommt immer 0 raus.