In diesem Programm lernen Sie, die Fakultät einer Zahl mithilfe der for- und while-Schleife in Kotlin zu ermitteln. Sie werden auch lernen, Bereiche zu verwenden, um dieses Problem zu lösen.
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
fun main(args: Array) ( val num = 10 var factorial: Long = 1 for (i in 1… num) ( // factorial = factorial * i; factorial *= i.toLong() ) println("Factorial of $num = $factorial") )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
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.
Im Gegensatz zu Java können Sie in Kotlin range ( 1… num
) und in operator verwenden, um Zahlen zwischen 1 und num zu durchlaufen.
Außerdem haben wir long anstelle von int verwendet, um große faktorielle Ergebnisse 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 .
Hier ist der entsprechende Java-Code: Java-Programm zum Finden des Faktors einer Zahl.
Beispiel 2: Finden Sie Factorial einer Zahl mit BigInteger
import java.math.BigInteger fun main(args: Array) ( val num = 30 var factorial = BigInteger.ONE for (i in 1… num) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(num.toLong())) ) println("Factorial of $num = $factorial") )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Faktor von 30 = 20589113209464900000000000000000000000000000000
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
fun main(args: Array) ( val num = 5 var i = 1 var factorial: Long = 1 while (i <= num) ( factorial *= i.toLong() i++ ) println("Factorial of $num = $factorial") )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
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.