有没有一种方法可以计算Java中的阶乘?[已关闭]

2022-08-31 09:27:18

我还没有找到它。我错过了什么吗?我知道阶乘方法是初学者的常见示例程序。但是,为重用这个标准实现不是很有用吗?我可以将这种方法用于标准类型(例如int,long...)和BigInteger / BigDecimal。


答案 1

Apache Commons MathMathUtils类中有一些阶乘方法。


答案 2
public class UsefulMethods {
    public static long factorial(int number) {
        long result = 1;

        for (int factor = 2; factor <= number; factor++) {
            result *= factor;
        }

        return result;
    }
}

HoldOffHunger的大数字版本:

public static BigInteger factorial(BigInteger number) {
    BigInteger result = BigInteger.valueOf(1);

    for (long factor = 2; factor <= number.longValue(); factor++) {
        result = result.multiply(BigInteger.valueOf(factor));
    }

    return result;
}

推荐