MudGuard: rekursionsproblem

Beitrag lesen

Hi,

Für den Fall muh == 0, also fak(0), wird folgender Code ausgeführt:

int hans=1;
     return hans;

Für muh == 1 wird effektiv folgender Code ausgeführt:

hans=muh*fak(0);
     return hans;

was aber gleichbedeutend ist mit

hans=muh*hans;
       return hans;

weil ja für muh == 0, also fak(0), der Wert von hans zurückgegeben wird.
Also wird das Ergebnis mit dem (falschen) Wert von fak(0) multipliziert.
0! ist als 1 festgelegt, nicht als 10 - also ist es sinnlos, dort den Wert 10 einzusetzen...

Ach ja, Deine Funktion hat ein Problem:

ruf mal fak(-1) auf ;-)

cu,
Andreas

--
MudGuard? Siehe http://www.mud-guard.de/