Kotlinov program za pronalaženje faktora broja

U ovom programu naučit ćete pronaći faktorijel broja koji koristi petlju for i while u Kotlinu. Također ćete naučiti koristiti domete za rješavanje ovog problema.

Faktorijal pozitivnog broja n daje:

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

Primjer 1: Pronađite faktorijel broja pomoću petlje 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") )

Kada pokrenete program, izlaz će biti:

 Faktorijal od 10 = 3628800

U ovom programu koristili smo for petlju za petlju kroz sve brojeve između 1 i zadanog broja num (10), a umnožak svakog broja dok se num pohrani u varijablu faktorijela.

Za razliku od Jave, u Kotlinu možete koristiti opsege ( 1… num) i operator da biste kružili brojevima između 1 i num.

Također, koristili smo long umjesto int za pohranu velikih rezultata faktorijela.

Međutim, još uvijek nije dovoljno velik za pohranu vrijednosti većih brojeva (recimo 100). Za rezultate koji se ne mogu pohraniti u dugačku varijablu koristimo BigIntegervarijablu deklariranu u java.mathknjižnici.

Evo ekvivalentnog Java koda: Java program za pronalaženje faktora broja.

Primjer 2: Pronađite faktorijel broja pomoću BigInteger-a

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

Kada pokrenete program, izlaz će biti:

 Faktorijal od 30 = 205891132094649000000000000000000000000000000

Ovdje, umjesto long, koristimo BigIntegervarijabilni faktorijel.

Budući da *se ne može koristiti sa BigInteger, umjesto toga koristimo multiply()za proizvod. Također, num bi trebao biti lijevan BigIntegerza množenje.

Isto tako, također možemo koristiti while petlju za rješavanje ovog problema.

Primjer 3: Pronađite faktorijel broja pomoću petlje 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") )

Kada pokrenete program, izlaz će biti:

 Faktorijal od 5 = 120

U gornjem programu, za razliku od for petlje, moramo povećati vrijednost i unutar tijela petlje.

Iako su oba programa tehnički ispravna, u ovom je slučaju bolje koristiti for loop. To je zato što je poznat broj ponavljanja (do broja).

Posjetite ovu stranicu da biste naučili pronaći faktorijel broja pomoću rekurzije.

Zanimljivi članci...