我创建了一个递归方法来计算数字的阶乘,但是,它总是返回 0,我不明白为什么。我在下面提供了我的代码:
public class projectTwenty {
public static void main(String [] args) {
int factorialAns = factorial(100);
System.out.println(factorialAns);
}
private static int factorial(int n) {
if (n == 0) {
return 1;
}else {
return (n * factorial(n-1));
}
}
}
我尝试过更改函数的调用方式以及返回值的方式,但到目前为止还没有成功。
我也在 Google/StackOverflow 中搜索了类似的方法/问题,但尚未找到解决方案。
因为 100 阶乘的位数太多,导致整数类型溢出。您可以尝试使用较小的值,效果会更好。
如果你想实际计算大阶乘,你可以使用 java 中的 BigInteger 类。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)