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


  • Mod

    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.


Log in to reply