Program Kotlin na vyhľadanie faktoriálu čísla

V tomto programe sa naučíte nájsť faktoriál čísla pomocou slučky for and while v Kotline. Naučíte sa tiež používať rozsahy na vyriešenie tohto problému.

Faktoriál kladného čísla n je daný:

 faktoriál n (n!) = 1 * 2 * 3 * 4 * … * n 

Príklad 1: Nájdite faktoriál čísla pomocou slučky 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") )

Po spustení programu bude výstup:

 Faktoriál 10 = 3628800

V tomto programe sme použili postupnosť opakovania medzi všetkými číslami medzi 1 a daným číslom num (10) a súčin každého čísla až do čísla num je uložený v premennom faktoriáli.

Na rozdiel od Javy môžete v Kotlini používať rozsahy ( 1… num) a v operátore na prechádzanie číslami od 1 do num.

Tiež sme dlho používali miesto int na ukladanie veľkých výsledkov faktoriálu.

Stále to však nie je dosť veľké na to, aby sa do nich uložila hodnota väčších čísel (povedzme 100). Na výsledky, ktoré nie je možné uložiť do dlhej premennej, sa používa BigIntegerpremenná deklarovaná v java.mathknižnici.

Tu je ekvivalentný kód Java: Program Java na vyhľadanie faktoriálu čísla.

Príklad 2: Vyhľadajte faktoriál čísla pomocou nástroja 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") )

Po spustení programu bude výstup:

 Faktoriál 30 = 205891132094649000000000000000000000000000000

Tu namiesto longpoužijeme BigIntegerpremenný faktoriál.

Pretože *sa nedá použiť BigInteger, použijeme namiesto multiply()toho produkt. Na BigIntegermnoženie by sa malo prenášať aj číslo .

Rovnako môžeme na vyriešenie tohto problému použiť aj cykliku while.

Príklad 3: Nájdite faktoriál čísla pomocou cyklu 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") )

Po spustení programu bude výstup:

 Faktoriál 5 = 120

Vo vyššie uvedenom programe musíme na rozdiel od cyklu for zvýšiť hodnotu i vo vnútri tela slučky.

Aj keď sú oba programy technicky správne, v tomto prípade je lepšie použiť loop. Je to preto, lebo je známy počet iterácií (až do počtu).

Navštívte túto stránku a naučte sa nájsť faktoriál čísla pomocou rekurzie.

Zaujímavé články...