使用递归求一个数的阶乘的 Java 程序
在本程序中,您将学习使用 Java 中的递归函数查找和显示数字的阶乘。
要理解此示例,您应该具备以下 Java 编程的知识:
- Java 方法
- Java 递归
正数 n 的阶乘由下式给出:
n (n!) = 1 _ 2 _ 3 _ 4 _ … * n 的阶乘
负数的阶乘不存在。并且 0 的阶乘是 1。
在此示例中,您将学习使用递归查找数字的阶乘。访问此页面以了解如何使用循环查找数字的阶乘。
示例:使用递归对数字进行阶乘
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;
}
}
输出
Factorial of 6 = 720
最初,从 main()
函数中,使用 6 作为参数调用 multiplyNumbers()
函数。
由于 6 大于或等于 1,因此 6 乘以 multiplyNumbers(5)
作为返回的结果。因为它是从同一个函数调用的,所以它是一个递归调用。
在每次递归调用中,参数 num
的值减 1 直到 num
达到小于 1。
当 num
的值小于 1 时,没有递归调用。
每个递归调用都会返回给我们:
6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720