gpt4 book ai didi

java - 这种递归方法有什么问题呢? (java)

转载 作者:行者123 更新时间:2023-12-01 13:50:03 25 4
gpt4 key购买 nike

该方法用于计算器,应该返回 log2(n)。所有使用的方法(monus 是拼写错误的减号)power 等)都被正确编写。 s(n) 只是将 n 加一,p(n) 减一。

当我在 main 中调用该方法时,它会得到正确的余数,但总是返回 0 作为答案。这让我很困惑。我确信这与每次调用该方法时我都会将答案重新初始化为 0 的事实有关,但这不应该无关紧要,因为它总是会在返回任何内容之前设置为 x 吗?

x 是私有(private)静态变量,已在方法外部设置为 0。

public static long v(long n)
{
long answer =0;

if (power(2,x) > n)
{
x = p(x);
setRemainder(monus(n,power(2,x)));
answer = x;
}
else if(power(2,x) ==n)
{
setRemainder(0);
answer = x;
}
else
{
x = s(x);
v(n);
}
x=0;// reset x so it can be used again.
return answer;

}

谁能帮我吗?

最佳答案

您应该更改行:

v(n);

至:

answer = v(n);

现在,如果执行了最后一个 else block ,则答案变量不会更改 - 所以它仍然是 0。

关于java - 这种递归方法有什么问题呢? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036511/

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