🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Kotlin 程序:使用递归查找数字的阶乘 > 原文: [https://www.programiz.com/kotlin-programming/examples/factorial-recursion](https://www.programiz.com/kotlin-programming/examples/factorial-recursion) #### 在此程序中,您将学习使用 Kotlin 中的递归函数查找并显示数字的阶乘。 正数 n 的阶乘由下式给出: ```kt factorial of n (n!) = 1 * 2 * 3 * 4 * ... * n ``` 负数的阶乘不存在。 阶乘 0 为 1。 在此示例中,您将学习使用递归查找数字的阶乘。 访问此页面了解如何使用循环查找数字的[阶乘](/kotlin-programming/examples/factorial "Kotlin program to calculate factorial using loop")。 ## 示例:使用递归的阶乘 ```kt fun main(args: Array<String>) { 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 } ``` 运行该程序时,输出为: ```kt Factorial of 6 = 720 ``` 最初,从`main()`函数调用`multiplyNumbers()`,并将 6 作为参数传递。 由于 6 大于或等于 1,因此将 6 与`multiplyNumbers()`的结果相乘,其中传递了 5(数字-1)。 由于是从同一函数调用的,因此它是递归调用。 在每个递归调用中,参数`num`的值减小 1,直到`num`小于 1。 当`num`的值小于 1 时,将没有递归调用。 每个递归调用都会返回给我们: ```kt 6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720 ``` 以下是等效的 Java 代码:[使用递归](/java-programming/examples/factorial-recursion "Java Program to find factorial using recursion")查找阶乘的 Java 程序