【发布时间】:2015-02-18 11:31:01
【问题描述】:
我创建了一个递归方法来计算一个数的阶乘,但是它总是返回 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 上搜索过类似的方法/问题,但尚未找到解决方案。
【问题讨论】:
-
你应该知道这不是计算阶乘的好方法。使用双打、lngamma 函数和记忆化会更好。