Hi leute,
Servus!
-
Spare dir hans
-
Baue die Rekursion korrekt auf:
Erst die Abbruchbedinung (hier mit return 1; als neutrales Element der Multiplikation)
Dann was sonst passiert.
Dein Problem liegt in den Activation Records, die Java intern für die Rekursion benutzt. Wenn du nämlich an der Abbruchbedinung angelangt bist arbeitet sich Java von hinten nach vorn durch die Ergebnisse durch, bis eben zu hans. Rekursionen sind eigentlich ziemlich simpel, wenn du aber nicht konsequent arbeitest kommst du in Teufels Küche.
Hier mein Vorschlag:
public class fakultaet {
public static int fak(int muh){
if(muh==0) return 1;
else return muh*fak(muh-1);
}
public static void main(String[] args){
int zahl=4;
System.out.println("Die Fakultaet von " + zahl + " = " + fak(zahl));
}
}
Tschö,
dbenzhuser