在你的递归程序中,存在一个错误,函数名字不一致。在第6行的RecTest应该改成RecTest2,这样才能调用正确的递归函数。修改后的代码如下:
java
Copy code
public int RecTest2(int i)
{
if (i == 1)
{
return 1;
}
else
{
return RecTest2(i - 2) + i;
}
}
现在来看你的推理:
RecTest2(5) = RecTest2(3) + 5
RecTest2(3) = RecTest2(1) + 3
RecTest2(1) = 1
现在,我们将这些代入计算:
RecTest2(1) = 1
RecTest2(3) = 1 + 3 = 4
RecTest2(5) = 4 + 5 = 9
所以,根据你的推理,RecTest2(5) 应该等于 9,而不是 11。确保你在调用递归函数时使用了正确的函数名字。如果你的问题仍然存在,请检查你的代码调用是否正确,或者提供完整的代码以便更详细地分析。
return RecTest(i - 2) + i;
是不是你少打了个2......
既然你RecTest2是i-2
那盲猜RecTest是i-1?
R2(5)=R(3)+5
R(3)=R(2)+3
R(2)=R(1)+2
R(1)=1
1+2+3+5=11
这不就通了
你的理解是对的