gpt4 book ai didi

java - 计算大整数 Java 的幂期间的无限循环

转载 作者:行者123 更新时间:2023-11-29 06:41:44 24 4
gpt4 key购买 nike

我一直盯着这段代码看,不知道它有什么问题,也许一双新眼睛能帮上忙。

public static BigInteger powerOfBigInteger (BigInteger base, BigInteger power){
if (power == BigInteger.valueOf(0)){
return BigInteger.valueOf(1);
}

if (power == BigInteger.valueOf(1)){
return base;
}

BigInteger x = BigInteger.valueOf(1);
while (x != power ){
base.multiply(base);
x.add(BigInteger.valueOf(1));
System.out.println(x + " " + power);
return base;
}

return base;

我运行它,显然 x 永远不等于幂。感谢您的帮助。

最佳答案

你应该这样做

if (BigInteger.ZERO.equals(power)) return BigInteger.ONE;
if (BigInteger.ONE.equals(power)) return base;

并且您必须累加乘法和加法的结果,因为 BigInteger 是不可变的并返回新的 BigInteger 实例

无限循环是因为你的 x 永远不会改变 - 应该是

x = x.add(BigInteger.ONE);

乘法应改为

result = result.mulitply(base);

初始结果值应为 BigInteger.ONE

关于java - 计算大整数 Java 的幂期间的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11025494/

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