Die beiden eingebauten primitiven Typen für ganze Zahlen
int und
long haben einen recht kleinen Wertebereich. Will man mit ganzen Zahlen mit beliebig hohen Beträgen rechnen, so kann man die Klasse
BigInteger verwenden. Objekte dieser Klasse können beliebig große und kleine ganze Zahlen darstellen.
Hierzu hat die Klasse einen Konstruktor, um ganze Zahlen aus ihrer Stringdarstellung zu erzeugen, z.B.:
new BigInteger("1567445324654764755675"). Es gibt aber auch zwei konstante Objekte für die Zahlen 0 und 1:
BigInteger.ONE.
Für Objekte gibt es keine arithmetische Operatoren oder Vergleichsoperatoren. Um mit
BigInteger Werten zu rechnen, gibt es Methoden. So gibt es für die Addition die Methode
add. Für negative Zahlen die Methode
negate().
Zum Vergleichen zweier Zahlen gibt es die Methode
compareTo, deren genaue Arbeitsweise der Java-Dokumentation zu entnehmen ist.
Um mit der Klasse
BigInteger zu arbeiten, ist vor der eigenen Klassendefinition folgende Import-Anweisung einzufügen:
import java.math.BigInteger;
Schreiben Sie in dieser Aufgabe die Fakultätsfunktion, so dass das Ergebnis eine BigInteger-Zahl ist. Damit können Sie auch für große Zahlen die Fakultät errechnen.
import java.math.BigInteger;
public final class BigIntegerFactorial {
private BigIntegerFactorial() {
}
static BigInteger factorial(long n){
BigInteger result = BigInteger.ONE;
return result;
}
}