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 BigInteger
varijablu deklariranu u java.math
knjiž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 BigInteger
varijabilni faktorijel.
Budući da *
se ne može koristiti sa BigInteger
, umjesto toga koristimo multiply()
za proizvod. Također, num bi trebao biti lijevan BigInteger
za 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.