📜  Java程序使用递归查找数字的阶乘

📅  最后修改于: 2020-09-26 18:27:31             🧑  作者: Mango

在此程序中,您将学习使用Java中的递归函数查找并显示数字的阶乘。

正数n的阶乘由下式给出:

factorial of 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,因此multiplyNumbers() 6与multiplyNumbers() 5(数字-1)的multiplyNumbers()的结果multiplyNumbers() 。由于是从同一函数的,因此它是递归调用。

在每次递归调用,参数的值n UM由1比1降低直至达到NUM少。

num的值小于1时,将没有递归调用。

每个递归调用都会返回给我们:

6 * 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 720