In diesem Programm lernen Sie, die Fakultät einer Zahl mithilfe der for- und while-Schleife in Java zu ermitteln.
Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:
- Java für Loop
- Java während und mache … während Loop
Die Fakultät einer positiven Zahl n ist gegeben durch:
Fakultät von n (n!) = 1 * 2 * 3 * 4 *… * n
Beispiel 1: Finden Sie das Faktor einer Zahl mit der for-Schleife
public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )
Ausgabe
Faktor 10 = 3628800
In diesem Programm haben wir for-Schleife verwendet, um alle Zahlen zwischen 1 und der angegebenen Zahl num (10) zu durchlaufen, und das Produkt jeder Zahl, bis num in einer variablen Fakultät gespeichert ist.
Wir haben long anstelle von int verwendet, um große Ergebnisse von Fakultät zu speichern. Es ist jedoch immer noch nicht groß genug, um den Wert größerer Zahlen (z. B. 100) zu speichern.
Für Ergebnisse, die nicht in einer langen Variablen gespeichert werden können, verwenden wir die BigInteger
in der java.math
Bibliothek deklarierte Variable .
Beispiel 2: Finden Sie Factorial einer Zahl mit BigInteger
import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )
Ausgabe
Faktor von 30 = 265252859812191058636308480000000
Hier verwenden long
wir stattdessen eine BigInteger
variable Fakultät.
Da *
nicht mit verwendet werden kann, verwenden BigInteger
wir stattdessen multiply()
für das Produkt. Außerdem sollte num BigInteger
zur Multiplikation verwendet werden.
Ebenso können wir eine while-Schleife verwenden, um dieses Problem zu lösen.
Beispiel 3: Finden Sie das Faktor einer Zahl mit der while-Schleife
public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )
Ausgabe
Faktor 5 = 120
Im obigen Programm müssen wir im Gegensatz zu einer for-Schleife den Wert von i innerhalb des Körpers der Schleife erhöhen.
Obwohl beide Programme technisch korrekt sind, ist es in diesem Fall besser, die for-Schleife zu verwenden. Dies liegt daran, dass die Anzahl der Iterationen (bis zu num) bekannt ist.
Besuchen Sie diese Seite, um zu erfahren, wie Sie mithilfe der Rekursion die Fakultät einer Zahl finden.