У цій програмі ви навчитеся знаходити та відображати факторіал числа за допомогою рекурсивної функції в 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 для пошуку факторіалів за допомогою рекурсії