尝试运行代码时出现错误java.lang.StackOverflowError:
public class calc {
public static void main(String[] args){
double zahl = 847362;
System.out.println( wannawoerk(zahl) );
}
public static double wannawoerk(double zahl){
if (zahl == 1)
return 1;
else
return wannawoerk(zahl - 1) + zahl;
} }
有没有解决此问题的方法?我必须使用没有for,while等的递归函数。
最佳答案
如果需要使用递归,则可以增加堆栈可用的内存:java -Xss256m YourClass
-将堆栈设置为最大256MB。
在现实世界中,您很可能为此使用while
循环。或者,在这种情况下,请立即进行计算(您不需要对正在计算的内容进行递归),但是我想这不是重点。