Programul Kotlin pentru a găsi factorul unui număr

În acest program, veți învăța să găsiți factorialul unui număr folosind bucla for și while în Kotlin. De asemenea, veți învăța să utilizați intervale pentru a rezolva această problemă.

Factorialul unui număr pozitiv n este dat de:

 factorial de n (n!) = 1 * 2 * 3 * 4 * … * n 

Exemplul 1: Găsiți factorul unui număr folosind bucla 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") )

Când rulați programul, ieșirea va fi:

 Factorial de 10 = 3628800

În acest program, am folosit pentru buclă pentru a parcurge toate numerele cuprinse între 1 și numărul dat (10), iar produsul fiecărui număr până la num este stocat într-un factorial variabil.

Spre deosebire de Java, în Kotlin, puteți utiliza range ( 1… num) și în operator pentru a parcurge numerele între 1 și num.

De asemenea, am folosit mult timp în loc de int pentru a stoca rezultate mari ale factorialului.

Cu toate acestea, încă nu este suficient de mare pentru a stoca valoarea unui număr mai mare (să zicem 100). Pentru rezultatele care nu pot fi stocate într-o variabilă lungă, folosim BigIntegervariabila declarată în java.mathbibliotecă.

Iată codul Java echivalent: Programul Java pentru a găsi factorul unui număr.

Exemplul 2: Găsiți factorul unui număr folosind 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") )

Când rulați programul, ieșirea va fi:

 Factorial de 30 = 20589113209464900000000000000000000000000000000

Aici, în loc de long, folosim BigIntegerfactorial variabil.

Deoarece, *nu poate fi utilizat cu BigInteger, în schimb, îl folosim multiply()pentru produs. De asemenea, num ar trebui aruncat BigIntegerpentru multiplicare.

La fel, putem folosi și o buclă while pentru a rezolva această problemă.

Exemplul 3: Găsiți factorul unui număr folosind bucla 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") )

Când rulați programul, ieșirea va fi:

 Factorial de 5 = 120

În programul de mai sus, spre deosebire de bucla for, trebuie să creștem valoarea lui în corpul buclei.

Deși ambele programe sunt corecte din punct de vedere tehnic, este mai bine să folosiți bucla în acest caz. Acest lucru se datorează faptului că numărul iterației (până la num) este cunoscut.

Accesați această pagină pentru a afla cum să găsiți factorialul unui număr folosind recursivitatea.

Articole interesante...