Java 递归错误输出

Java 递归错误输出,java,loops,recursion,methods,Java,Loops,Recursion,Methods,我得到了以下代码 int go(int x){ if (x<1) return 1; else return x + go(x-2) + go(x-3); } intgo(intx){ 如果(x听起来你犯了一个错误,go(1)=3+go(1-2)其中实际公式是go(1)=1+go(1-2)+go(1-3) 在这个递归方法中,你的基本情况是xTo我在问题上写的代码3+go(-1)从哪里来?4从哪里来?你在计算x=3吗?JavaB可能在go(1)调用中使用

我得到了以下代码

int go(int x){
   if (x<1)
      return 1;
   else
      return x + go(x-2) + go(x-3);
}
intgo(intx){

如果(x听起来你犯了一个错误,
go(1)=3+go(1-2)
其中实际公式是
go(1)=1+go(1-2)+go(1-3)


在这个递归方法中,你的基本情况是
xTo我在问题上写的代码
3+go(-1)
从哪里来?4从哪里来?你在计算x=3吗?JavaB可能在go(1)调用中使用了x=3,得到了“3+go(-1)”,我不明白你是怎么得到的(1+go(-1)+go(-2))“…对不起,我是新来的NVM,我知道了!非常感谢你的帮助!你从哪里得到“1+go(1-2)+go(1-3)”的?如果我的问题是愚蠢的,对不起,我是一个新手NVM,我知道了!非常感谢你的帮助!
  go(3)
= 3 + go(1) + go(0)
= 3 + go(1) + 1
= 3 + (1 + go(-1) + go(-2)) + 1
= 3 + (1 + 1 + 1) + 1
= 7
go(3)

3 + go(3-2) + go(3-3)

3 + go(1) + go(0)

3 + 1 + go(1-2) + go(1-3) + 1

5 + go(-1) + go(-2)

5 + 1 + 1

7
answer is 7 which is correct. 

3 + go(3-2) + go(3-3) 
 = 3 + go(1) + go(0)

 go(0) = 1 

 go(1) = 1 + go(1-2) + go ( 1-3)
       = 1 + go(-1) + go(-2)
       = 1 + 1 + 1 
       = 3 


 = putting all values go(3) = 7 
go(3)== 3 + 3 + 1 == 7
 3 + go(3-2)=>go(1) + go(3-3)=>go(0)
  go(1)==1+1+1==3
    1 + go(1-2)=>go(-1) + go(1-3)=>go(-2)
      go(-1)==1
        1
      go(-2)==1
        1
  go(0)==1
    1