gpt4 book ai didi

java - 递归的 StackOverflowError

转载 作者:行者123 更新时间:2023-12-01 18:20:50 32 4
gpt4 key购买 nike

谁能告诉我为什么会出现这个错误?这真的很困扰我。我想做的是找到表达式 2^k +1 的总和,因为 k 的范围从 1 到 n。

import java.util.*;

public class mySums
{
private static double n;

public static void main(String[] args)
{
recurSum(4);
System.out.println();
}

/* public static void iterativeSum (int num)
{

}
*/
public static double recurSum (double num)
{
if (n==1){
return 1;}
else {
return (Math.pow(2.0, n) +1) + recurSum(n-1);}
}
}

谢谢。

最佳答案

这是因为您在 recurSum 中使用的是 n 而不是 numn 是一个永远不会改变的静态变量;你应该删除它。另一方面,num 是传递给 recurSum 的参数;当你降低递归调用的级别时,它的值会减小,最终达到 1 并让你退出:

public static double recurSum (double num) {
if (num==1) {
return 1;
} else {
return (Math.pow(2.0, num) +1) + recurSum(num-1);
}
}

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

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