欢迎访问宙启技术站
智能推送

calculateFactorial()-计算阶乘的Java函数

发布时间:2023-06-29 20:44:26

计算阶乘是一个常见的数学问题,可以通过递归或循环来实现。下面是一个用Java编写的函数,用于计算给定数值的阶乘。

public static long calculateFactorial(int num) {
    // 检查边界情况
    if (num < 0) {
        throw new IllegalArgumentException("输入的参数不能为负数");
    }

    // 基本情况:0的阶乘为1,1的阶乘为1
    if (num == 0 || num == 1) {
        return 1;
    }

    // 递归调用:num的阶乘等于num乘以(num-1)的阶乘
    return num * calculateFactorial(num - 1);
}

该函数的功能如下:

1. 检查输入参数是否为负数,如果是则抛出异常。

2. 对于输入参数为0或1的情况,直接返回1,因为0的阶乘和1的阶乘都等于1。

3. 对于其他大于1的情况,使用递归调用来计算阶乘。通过将当前的数值乘以小于它的数的阶乘,逐步缩小问题规模,最终得到结果。

使用示例:

public static void main(String[] args) {
    int num = 5;
    long factorial = calculateFactorial(num);
    System.out.println(num + "的阶乘是:" + factorial);
}

输出结果为:

5的阶乘是:120

该函数的时间复杂度为O(n),其中n是输入参数。因为每次递归调用都会使问题规模缩小1,所以总共需要进行n次递归调用。