Subato

BigInteger Factorial

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; } }
java