Han*_*ler 0 java recursion function
我尝试运行代码时收到错误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;
} }
Run Code Online (Sandbox Code Playgroud)
这个问题有解决方法吗?我不得不使用递归函数,而不是等等.
1反复的减从zahl 将最终给你1(通过在此范围内的整数整数浮点减法是确切的:你只能得到上面的2第53届功率古怪).
您的问题是您的JVM可能不会允许您进行许多递归调用.
堆栈深度接近一百万,真的不会结束!