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次递归调用。
