В тази програма ще се научите да намирате и показвате факториал на число, използвайки рекурсивна функция в Kotlin.
Факториалът на положително число n се дава от:
факториал на n (n!) = 1 * 2 * 3 * 4 * … * n
Факториалът на отрицателно число не съществува. А факториалът на 0 е 1.
Ще се научите да намирате факториал на число, използвайки рекурсия в този пример. Посетете тази страница, за да научите как можете да намерите факториал на число с помощта на цикъл.
Пример: Факториал на число, използващо рекурсия
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 )
Когато стартирате програмата, изходът ще бъде:
Факториал на 6 = 720
Първоначално функцията multiplyNumbers()
се извиква от main()
функцията с 6, подадена като аргумент.
Тъй като 6 е по-голямо или равно на 1, 6 се умножава до резултата от multiplyNumbers()
мястото, където се предава 5 (число -1). Тъй като се извиква от същата функция, това е рекурсивно повикване.
При всяко рекурсивно повикване стойността на аргумента num се намалява с 1, докато num достигне по-малко от 1.
Когато стойността на num е по-малка от 1, няма рекурсивно повикване.
И всяко рекурсивно повикване се връща, като ни дава:
6 * 5 * 4 * 3 * 2 * 1 * 1 (за 0) = 720
Ето еквивалентния Java код: Java програма за намиране на факториал, използвайки рекурсия