Kotlino programa, leidžianti rasti faktoriaus skaičių

Šioje programoje sužinosite, kaip surasti skaičiaus faktorą naudojant „Kotlin“ ir „loop“. Taip pat išmoksite naudoti diapazonus šiai problemai išspręsti.

Teigiamo skaičiaus n faktorą pateikia:

 faktorius n (n!) = 1 * 2 * 3 * 4 *… * n 

1 pavyzdys: raskite skaičiaus faktorių naudodami ciklą

 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") )

Kai paleisite programą, išvestis bus:

 Faktorinis koeficientas 10 = 3628800

Šioje programoje mes naudojome kilpą, kad galėtume sureguliuoti visus skaičius nuo 1 iki nurodyto skaičiaus num (10), o kiekvieno skaičiaus iki numerio sandauga yra saugoma kintamojoje faktorijoje.

Skirtingai nuo „Java“, „Kotlin“ galite naudoti diapazonus ( 1… num) ir operatorių, kad galėtumėte peržvelgti skaičius nuo 1 iki num.

Be to, mes naudojome ilgai, o ne int, kad išsaugotume didelius faktorių rezultatus.

Tačiau jis vis dar nėra pakankamai didelis, kad būtų galima išsaugoti didesnių skaičių (tarkime 100) vertę. Rezultatams, kurių negalima išsaugoti ilgame kintamajame, naudojame bibliotekoje BigIntegerdeklaruotą kintamąjį java.math.

Čia yra lygiavertis „Java“ kodas: „Java“ programa faktoriaus skaičiui rasti.

2 pavyzdys: raskite skaičiaus faktorių naudodami „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") )

Kai paleisite programą, išvestis bus:

 Faktorinis koeficientas 30 = 205891132094649000000000000000000000000000000000000

Vietoj to long, mes naudojame BigIntegerkintamąjį faktorių.

Kadangi *negalima naudoti BigInteger, mes naudojame multiply()produktą. Be to, skaičius turi būti perduotas BigIntegerdauginti.

Taip pat mes galime naudoti tam tikrą laiką, kad išspręstume šią problemą.

3 pavyzdys: suraskite skaičiaus faktorių naudodami while loop

 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") )

Kai paleisite programą, išvestis bus:

 Faktorinis koeficientas 5 = 120

Pirmiau pateiktoje programoje, skirtingai nei „for loop“, mes turime padidinti i reikšmę kilpos kūne.

Nors abi programos yra techniškai teisingos, šiuo atveju geriau naudoti ciklą. Taip yra todėl, kad yra žinomas iteracijų skaičius (iki skaičių).

Apsilankykite šiame puslapyje, kad išmoktumėte surasti faktoriaus skaičių naudodami rekursiją.

Įdomios straipsniai...