gpt4 book ai didi

java - Java中两个BigIntegers的关系操作

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

在尝试使用BINARY SEARCH 方法计算BigInteger平方根 时,我陷入了如何比较< strong>两个 BigIntegers 用于满足比较操作。比如,我想检查两个 BigInteger 变量之间的相等大于或小于条件。

这是错误的一段代码,粗略地了解了我要执行的操作。如果能解决此问题,我们将不胜感激。

public static BigInteger squareroot(BigInteger bi){
//BigInteger bkl;
BigInteger low,high,mid;
low=ONE;
high=bi.add(ZERO);
while(low<=high)
{
mid =(low.add(high)).divide(new BigInteger("2"));
if(mid.multiply(mid).equals(bi))
return mid;
if(mid.multiply(mid) > bi)
high = mid -1 ;
else
low = mid + 1;
}
return mid;
}

最佳答案

BigIntegerObject s 所以你不能将它们的内容与关系运算符进行比较,例如 > , 和 ==不会比较内容;它将比较对象引用。

然而,BigInteger执行Comparable<BigInteger> , 所以叫 compareTo 相反。

  • 为了相等,使用left.compareTo(right) == 0 .
  • 对于小于,使用 left.compareTo(right) < 0 .
  • 对于大于,使用 left.compareTo(right) > 0 .

关于java - Java中两个BigIntegers的关系操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23372573/

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