ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Java 程序:使用递归查找数字的阶乘 > 原文: [https://www.programiz.com/java-programming/examples/factorial-recursion](https://www.programiz.com/java-programming/examples/factorial-recursion) #### 在此程序中,您将学习使用 Java 中的递归函数查找并显示数字的阶乘。 正数 n 的阶乘由下式给出: ```java factorial of n (n!) = 1 * 2 * 3 * 4 * ... * n ``` 负数的阶乘不存在。 阶乘 0 为 1。 在此示例中,您将学习使用递归查找数字的阶乘。 访问此页面了解如何使用循环查找数字的[阶乘](/java-programming/examples/factorial "Java program to calculate factorial using loop")。 ## 示例:使用递归的阶乘 ```java public class Factorial { public static void main(String[] args) { int num = 6; long factorial = multiplyNumbers(num); System.out.println("Factorial of " + num + " = " + factorial); } public static long multiplyNumbers(int num) { if (num >= 1) return num * multiplyNumbers(num - 1); else return 1; } } ``` 运行该程序时,输出为: ```java Factorial of 6 = 720 ``` 最初,从`main()`函数调用`multiplyNumbers()`,并将 6 作为参数传递。 由于 6 大于或等于 1,因此将 6 与`multiplyNumbers()`的结果相乘,其中传递了 5(`num - 1`)。 由于是从同一函数调用的,因此它是递归调用。 在每个递归调用中,参数`num`的值减小 1,直到`num`小于 1。 当`num`的值小于 1 时,将没有递归调用。 每个递归调用都会返回给我们: ```java 6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720 ```