双数字返回stackoverflow

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)

谢谢你到目前为止的答案.我的问题是:我如何使我的代码工作?

Mur*_*nik 5

这里的问题不是数字a的大小double- 问题是堆栈的大小.在这里,你必须20K嵌套调用summe,这是方式太多的栈处理,因此,它溢出.如果s是一个int而不是一个double,你就会遇到完全相同的问题.