📅  最后修改于: 2023-12-03 15:12:48.255000             🧑  作者: Mango
阶乘是将一个正整数 n 的各个非零整数相乘所得的积,符号为 n!。例如,4! = 4 × 3 × 2 × 1 = 24。
Java中,通过循环或递归的方式计算阶乘。
使用for循环来计算阶乘:
public static int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
使用递归来计算阶乘:
public static int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
使用递归方式进行计算,其性能比较低,因为在递归调用过程中需要不断的创建新的栈帧。而循环方式并不需要创建新的栈帧,因此其性能更佳。
编写测试代码来测试阶乘的计算,使用JUnit4测试框架:
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class FactorialTest {
@Test
public void testFactorial() {
assertEquals(1, Factorial.factorial(1));
assertEquals(1, Factorial.factorial(0));
assertEquals(24, Factorial.factorial(4));
assertEquals(3628800, Factorial.factorial(10));
}
}
阶乘是一种常见的数学问题,在Java中可以通过循环或递归的方式进行计算。循环方式性能更佳,但递归方式也是一种常见的解决方案。在进行阶乘计算时,需要注意输入的数字必须为正整数。