gpt4 book ai didi

java - 递归函数抛出 java.lang.StackOverflowError

转载 作者:行者123 更新时间:2023-12-01 06:49:45 26 4
gpt4 key购买 nike

当我尝试运行代码时收到错误 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 等的递归函数。

最佳答案

zahl 中重复减去 1 最终会得到 1。(对这个范围内的整数进行浮点减法是精确的:你只会得到 2 的 53 次方以上的奇怪值。

您的问题是您的 JVM 可能不允许您进行那么多递归调用。

堆栈深度接近一百万真的不会有好结果!

关于java - 递归函数抛出 java.lang.StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40086922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com