所以请考虑以下程序段!我曾尝试使用基本递归函数来确定数字的阶乘,但现在使用 BigInteger 类。
public static BigInteger fact(int a)
{
BigInteger factorial = BigInteger.ONE;
BigInteger factz = BigInteger.ONE;
if(a == 1)
{
return factorial;
}
else
{
return factz.multiply(fact(a-1));
}
}
所以当我尝试在程序中实现它时,它返回输出为 1。是因为 BigInteger 对象是不可变的吗?或者我在这里遗漏了什么?
最佳答案
代码有错误,你应该把
BigInteger factz = BigInteger.valueOf(a);
而不是 BigInteger factz = BigInteger.ONE;
关于java - 使用 BigInteger 类的递归查找阶乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908260/