Kotlin Program számok tényezőjének megkeresésére

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 BigIntegera java.mathkö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 BigIntegervá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 BigIntegerszorzá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.

érdekes cikkek...