Kotlinov program za iskanje faktorja števila

V tem programu se boste naučili najti faktorje številke z uporabo zanke for in while v Kotlinu. Naučili se boste tudi uporabljati obsege za reševanje te težave.

Faktorial pozitivnega števila n je podan z:

 faktorijel od n (n!) = 1 * 2 * 3 * 4 * … * n 

Primer 1: Poiščite faktorja števila s pomočjo zanke for

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

Ko zaženete program, bo rezultat:

 Faktorijev 10 = 3628800

V tem programu smo zanko for uporabili za zanko skozi vsa števila med 1 in dano številko num (10), zmnožek vsake številke, dokler ni num, je shranjen v spremenljivki faktorije.

Za razliko od Jave lahko v Kotlinu z obsegi ( 1… num) in in operator uporabljate zanke med številkami med 1 in num.

Prav tako smo dolgo, namesto int, uporabljali za shranjevanje velikih rezultatov faktorja.

Vendar še vedno ni dovolj velik, da bi shranil vrednost večjih števil (recimo 100). Za rezultate, ki jih ni mogoče shraniti v dolgi spremenljivki, uporabimo BigIntegerspremenljivko, navedeno v java.mathknjižnici.

Tu je enakovredna koda Java: Java program za iskanje faktorja števila.

Primer 2: Poiščite Factoriala številke z uporabo 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") )

Ko zaženete program, bo rezultat:

 Faktorijev od 30 = 205891132094649000000000000000000000000000000

Tu namesto longuporabljamo BigIntegerspremenljivko faktorijel.

Ker *tega ni mogoče uporabiti z BigInteger, namesto tega uporabljamo multiply()za izdelek. BigIntegerZa množenje je treba vnesti tudi num .

Prav tako lahko za rešitev te težave uporabimo tudi zanko while.

Primer 3: Poiščite Factoriala števila s pomočjo zanke while

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

Ko zaženete program, bo rezultat:

 Faktorijev od 5 = 120

V zgornjem programu moramo za razliko od zanke for povečati vrednost i znotraj telesa zanke.

Čeprav sta oba programa tehnično pravilna, je v tem primeru bolje uporabiti for. To je zato, ker je znano število ponovitev (do števila).

Obiščite to stran in se naučite najti faktorije števila z uporabo rekurzije.

Zanimive Članki...