为何我的代码不能正确输出100的阶乘值呢?以为是超过了int的最大值范围,换成了long也不行,10以内的阶乘都可以正确输出
收起
就是太大了:9.3326215e+157,157位数:
private static BigDecimal factorial(int num) { if (num == 1) { return BigDecimal.valueOf(1); } else { return BigDecimal.valueOf(num).multiply(factorial(num - 1)); } }
报告相同问题?