📜  阶乘 java (1)

📅  最后修改于: 2023-12-03 15:12:48.255000             🧑  作者: Mango

Java中的阶乘

阶乘是将一个正整数 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中可以通过循环或递归的方式进行计算。循环方式性能更佳,但递归方式也是一种常见的解决方案。在进行阶乘计算时,需要注意输入的数字必须为正整数。