Program Kotlin k nalezení faktoriálu čísla

V tomto programu se naučíte najít faktoriál čísla pomocí smyčky for a while v Kotlin. Naučíte se také používat rozsahy k řešení tohoto problému.

Faktoriál kladného čísla n je dán vztahem:

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

Příklad 1: Najděte faktoriál čísla pomocí smyč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") )

Když spustíte program, výstup bude:

 Faktoriál 10 = 3628800

V tomto programu jsme použili smyčku pro smyčku všech čísel mezi 1 a daným číslem num (10) a součin každého čísla do num je uložen v proměnném faktoriálu.

Na rozdíl od Javy můžete v Kotlinu použít rozsahy ( 1… num) a v operátoru k procházení čísel mezi 1 až num.

Také jsme použili long místo int k uložení velkých výsledků faktoriálu.

Stále však není dost velký na to, aby ukládal hodnotu větších čísel (řekněme 100). U výsledků, které nelze uložit do dlouhé proměnné, použijeme BigIntegerproměnnou deklarovanou v java.mathknihovně.

Zde je ekvivalentní kód Java: Program Java k vyhledání faktoriálu čísla.

Příklad 2: Najděte faktoriál čísla pomocí 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") )

Když spustíte program, výstup bude:

 Faktoriál 30 = 205891132094649000000000000000000000000000000

Zde místo toho longpoužíváme BigIntegerproměnný faktoriál.

Protože *nelze použít s BigInteger, místo toho použijeme multiply()pro produkt. BigIntegerPro rozmnožování by také mělo být sesláno num .

Podobně můžeme k řešení tohoto problému použít i while smyčku.

Příklad 3: Najděte faktoriál čísla pomocí smyčky 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") )

Když spustíte program, výstup bude:

 Faktoriál 5 = 120

Ve výše uvedeném programu, na rozdíl od smyčky for, musíme zvýšit hodnotu i uvnitř těla smyčky.

Ačkoli jsou oba programy technicky správné, je v tomto případě lepší použít smyčku. Je to proto, že je znám počet iterací (až num).

Na této stránce se naučíte najít faktoriál čísla pomocí rekurze.

Zajímavé články...