为什么我的递归阶乘方法总是返回 0? [复制]

2024-04-20

我创建了一个递归方法来计算数字的阶乘,但是,它总是返回 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(使用前将#替换为@)

为什么我的递归阶乘方法总是返回 0? [复制] 的相关文章

随机推荐