Ebben a programban megtanulja megtalálni a szám faktoriálját a Kotlin alatt a és közben ciklus használatával. Megtanulja a tartományok használatát is a probléma megoldására.
Az n pozitív szám tényezőjét a következő adja meg:
n (n!) = 1 * 2 * 3 * 4 *… * n tényező
1. példa: Keresse meg a szám tényezőjét a ciklus használatával
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") )
A program futtatásakor a kimenet a következő lesz:
10-es tényező = 3628800
Ebben a programban azt használtuk, hogy a hurok az 1 és a megadott szám (10) közötti összes számot végigkíséri, és az egyes számok és számok szorzatát egy változó tényezőben tároljuk.
A Java-val ellentétben Kotlinban a tartományok ( 1… num
) és az operátor segítségével használhatja az 1 és a szám közötti számok közötti váltást.
Ezenkívül az int helyett hosszú ideig használtuk a faktoriális nagy eredmények tárolását.
Ez azonban még mindig nem elég nagy a nagyobb számok (mondjuk 100) értékének tárolásához. A hosszú változóban nem tárolható eredményekhez BigInteger
a java.math
könyvtárban deklarált változót használjuk .
Itt található az egyenértékű Java-kód: Java program a szám tényezőjének megkereséséhez
2. példa: Keresse meg a szám tényezőjét a BigInteger használatával
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") )
A program futtatásakor a kimenet a következő lesz:
30-as tényező = 205891132094649000000000000000000000000000000000000
Itt ahelyett long
, hogy BigInteger
változó faktoriált használunk .
Mivel *
nem használható együtt BigInteger
, inkább multiply()
a termékhez használjuk. Ezenkívül a számot be kell önteni BigInteger
szorzáshoz.
Hasonlóképpen használhatunk egy darab hurokot is a probléma megoldására.
3. példa: Keresse meg a szám faktorszámát a while ciklus használatával
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") )
A program futtatásakor a kimenet a következő lesz:
5-ös tényező = 120
A fenti programban, a for ciklussal ellentétben, meg kell növelnünk az i értékét a hurok testén belül.
Noha mindkét program technikailag helyes, ebben az esetben jobb a loop használatát használni. Ez azért van, mert az iteráció száma (upto num) ismert.
Látogasson el erre az oldalra, hogy megtanulja megtalálni a szám faktoriális számát rekurzióval.