W tym programie nauczysz się znajdować i wyświetlać silnię liczby za pomocą funkcji rekurencyjnej w Kotlinie.
Silnia liczby dodatniej n jest wyrażona wzorem:
silnia n (n!) = 1 * 2 * 3 * 4 *… * n
Silnia liczby ujemnej nie istnieje. Silnia 0 to 1.
W tym przykładzie nauczysz się znajdować silnię liczby za pomocą rekurencji. Odwiedź tę stronę, aby dowiedzieć się, jak znaleźć silnię liczby za pomocą pętli.
Przykład: silnia liczby przy użyciu rekursji
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 )
Po uruchomieniu programu wynik będzie następujący:
Silnia 6 = 720
Początkowo multiplyNumbers()
wywoływana jest main()
funkcja z wartością 6 przekazaną jako argument.
Ponieważ 6 jest większe lub równe 1, 6 jest mnożone do wyniku, multiplyNumbers()
gdzie przekazano 5 (liczba -1). Ponieważ jest wywoływana z tej samej funkcji, jest to wywołanie rekurencyjne.
W każdym wywołaniu rekurencyjnym wartość argumentu num jest zmniejszana o 1, aż liczba osiągnie wartość mniejszą niż 1.
Gdy wartość num jest mniejsza niż 1, nie ma wywołania rekurencyjnego.
A każde rekurencyjne wywołanie zwraca nam:
6 * 5 * 4 * 3 * 2 * 1 * 1 (dla 0) = 720
Oto odpowiednik kodu w Javie: Program w języku Java do znajdowania silni przy użyciu rekursji