V tomto programu se naučíte najít a zobrazit faktoriál čísla pomocí rekurzivní funkce v Kotlin.
Faktoriál kladného čísla n je dán vztahem:
faktoriál n (n!) = 1 * 2 * 3 * 4 * … * n
Faktoriál záporného čísla neexistuje. A faktoriál 0 je 1.
V tomto příkladu se naučíte najít faktoriál čísla pomocí rekurze. Na této stránce se dozvíte, jak najít faktoriál čísla pomocí smyčky.
Příklad: Faktoriál čísla pomocí rekurze
fun main(args: Array) ( val num = 6 val factorial = multiplyNumbers(num) println("Factorial of $num = $factorial") ) fun multiplyNumbers(num: Int): Long ( if (num>= 1) return num * multiplyNumbers(num - 1) else return 1 )
Když spustíte program, výstup bude:
Faktoriál 6 = 720
Zpočátku multiplyNumbers()
se volá z main()
funkce s 6 předanými jako argument.
Protože 6 je větší nebo rovno 1, 6 se vynásobí na výsledek, multiplyNumbers()
kde je předáno 5 (num -1). Protože se volá ze stejné funkce, jedná se o rekurzivní volání.
V každém rekurzivním volání se hodnota argumentu num sníží o 1, dokud num nedosáhne méně než 1.
Když je hodnota num menší než 1, není rekurzivní volání.
A každé rekurzivní volání se vrací a dává nám:
6 * 5 * 4 * 3 * 2 * 1 * 1 (pro 0) = 720
Zde je ekvivalentní kód Java: Program Java k vyhledání faktoriálu pomocí rekurze