gpt4 book ai didi

java - 二进制幂错误

转载 作者:行者123 更新时间:2023-12-01 09:36:31 25 4
gpt4 key购买 nike

给定整数 n 和 k,求 n^k 的值。我尝试递归地执行此操作,但我不明白我哪里出错了。有人可以帮忙吗?

  int binaryPower(int n, int k) {

if (k == 0) {
return 1;
}
if (k % 2 == 0) {
return binaryPower(n * n, k / 2);
}
return binaryPower(n, k - 1);
}

最佳答案

错误出现在n % 2 != 0的情况下。在这里,您必须返回 binaryPower(n, k - 1) * n;,但您返回 binaryPower(n, k - 1);

目前,如果我们以33为例。
33 -> 32 -> 91 -> 90 -> 1

应该是:
33 -> 32 * 3-> 91 *3 -> 90 * 3 * 9 -> 27

更改的代码:

int binaryPower(int n, int k) {

if (k == 0) {
return 1;
}

if (k % 2 == 0) {
return binaryPower(n * n, k / 2);
}

return binaryPower(n, k - 1) * n; // Changed
}

关于java - 二进制幂错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859094/

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