Java中使用BigInteger的递归50阶乘
所以我一直在尝试用BigInteger得到像50这样的大阶乘。但是当我在cmd中运行这个程序时,我在第16行得到了意外的错误:fact=fact。乘法(新的BigInteger(getFactorial(n-1)))。 我甚至无法看到抛出的异常被滚动出来。请帮我找出错误
import java.math.BigInteger;
class FactorialUsingRecursion {
public static void main(String args[]) {
int num=50;
String fact=getFactorial(num);
System.out.println(num+"! = "+fact);
}
static String getFactorial(int n) {
BigInteger fact=new BigInteger(n+"");
if(fact.toString()=="1") {
return "1";
}
fact=fact.multiply(new BigInteger(getFactorial(n-1)));//error line
return fact.toString();
}
}
# 1 楼答案
问题在于if条件下的字符串比较。将该条件更改为以下条件: