Servus,
wir sollen eine rekursive Methode schreiben, um die Fakultät einer Zahl zu berechnen mit BigInteger. Ich bin eigentlich der festen Überzeugung, dass mein Code stimmt und er funktionieren müsste. Selbst der Compiler ist zufrieden.
Die 5 wird richtig an die Methode übergeben und wird auch korrekt runtergezählt. Es bedeutet also, dass auch " return n.multiply(facRek(n.subtract(BigInteger.ONE))); " prinzipiell funktioniert, nur gibt er kein Ergebnis aus, sondern immer nur die 0, wenn er fertig ist.
wir sollen eine rekursive Methode schreiben, um die Fakultät einer Zahl zu berechnen mit BigInteger. Ich bin eigentlich der festen Überzeugung, dass mein Code stimmt und er funktionieren müsste. Selbst der Compiler ist zufrieden.
Java:
import java.math.BigInteger;
public class BigInt {
static BigInteger facRek(BigInteger n) {
//int compare;
//compare = n.compareTo(BigInteger.ZERO);
//System.out.println(compare);
if (n.compareTo(BigInteger.ZERO) == 0) {
return BigInteger.ZERO;
} else {
return n.multiply(facRek(n.subtract(BigInteger.ONE)));
}
}
public static void main(String[] args) {
BigInteger fac = new BigInteger("5");
System.out.print(facRek(fac));
}
}
Die 5 wird richtig an die Methode übergeben und wird auch korrekt runtergezählt. Es bedeutet also, dass auch " return n.multiply(facRek(n.subtract(BigInteger.ONE))); " prinzipiell funktioniert, nur gibt er kein Ergebnis aus, sondern immer nur die 0, wenn er fertig ist.