Cap*_*o90 0 java stack-overflow double function
double我想,可以代表的最高数字是非常高的.虽然以下代码抛出异常.这实际上是我的完整代码.
public class Summe {
public static void main(String[] args) {
System.out.println(summe(20000));
}
public static double summe(double s) {
return s == 0 ? s : s + summe(s-1);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你到目前为止的答案.我的问题是:我如何使我的代码工作?
这里的问题不是数字a的大小double- 问题是堆栈的大小.在这里,你必须20K嵌套调用summe,这是方式太多的栈处理,因此,它溢出.如果s是一个int而不是一个double,你就会遇到完全相同的问题.