Java 基础教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

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

Java 实例大全

在此程序中,您将学习使用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("" + num + "的阶乘 = " + factorial);
    }
    public static long multiplyNumbers(int num)
    {
        if (num >= 1)
            return num * multiplyNumbers(num - 1);
        else
            return 1;
    }
}

运行该程序时,输出为:

 6的阶乘 = 720

最初,从main()函数中调用multiplyNumbers(),并以6作为参数传递。

因为6大于或等于1,所以6乘以了multiplyNumbers()的结果,其中传递了5 (num -1)。因为它是从同一个函数中调用的,所以它是一个递归调用。

在每次递归调用中,参数num的值减少1,直到num小于1。

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

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

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

Java 实例大全