为了账号安全,请及时绑定邮箱和手机立即绑定

程序中的 StackOverflow 错误,我找不到原因

程序中的 StackOverflow 错误,我找不到原因

MMTTMM 2021-08-25 17:37:25
void recur(int i){    if(i==n)        return;    String sub="";    for(int j=i+1;j<n;j++)    {        sub=s.substring(i,j);        if(isPalindrome(sub))            System.out.println(sub);    }    recur(i++);}我StackOverflowError在sub=s.substring(I,j); 声明。s="geeks", initial value of I=0;
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

尝试这个


public class P {


    public static final String s="geeks";


    static void recur(int i){


        int n=6;   //Size of string


        if(i==n)

            return;


        String sub="";


        for(int j=i+1;j<n;j++)

        {

            sub=s.substring(i,j);

            //Any Function

            System.out.println(sub);

        }

        recur(++i);

    }



    public static void main(String[] args) {


        P.recur(0);

    }

}


查看完整回答
反对 回复 2021-08-25
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

recur(i++);

表达式i++的值为i当前时间的值;然后你增加它。

因此,您基本上是在调用:

recur(i);
i++;

所以你只是recur用相同的参数再次调用。

尝试:

recur(++i);


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信