gpt4 book ai didi

java - 对于Java BigInteger类,有没有办法定义一个具有多个条件的if语句,并用逻辑运算符分隔?

转载 作者:行者123 更新时间:2023-12-02 09:49:03 25 4
gpt4 key购买 nike

这里是 Java 中的一个方法,它将生成一个包含前 100,000,000 个斐波那契数的 ArrayList,这样这些斐波那契数都不能被任何更小的平方数整除。

因此,BigInteger Java 类被实现来处理异常大的数字。

我们发现,在编写 if 语句时,使用逻辑运算符(例如 &&||)不适用于 BigInteger 类,如代码如下。

为了便于在此页面上阅读,注释已从代码中删除。

非常感谢您的贡献。

public ArrayList<BigInteger> squareFree () {
index = 0;
fibValues_noSqr = fibValues;
ArrayList<BigInteger> squares = new ArrayList<BigInteger>();

int sqrScan;

for (index = 0; index < fibValues_noSqr.size(); index++) {
squares.add(BigInteger.valueOf(powerOf(index + 2, 2)));
}

for (index = 0; index < fibValues_noSqr.size(); index++) {
for (sqrScan = 0; sqrScan < fibValues_noSqr.size(); sqrScan++) {
if (squares.get(index).compareTo(fibValues_noSqr.get(sqrScan)) < 0 || squares.get(index).equals(fibValues_noSqr.get(sqrScan)) && fibValues_noSqr.get(sqrScan).remainder(squares.get(index))) {

fibValues_noSqr.remove(sqrScan);
}
}
}
}

在这种情况下,Java 显示以下错误

对于参数类型 boolean 值、BigInteger,运算符 && 未定义

最佳答案

感谢@GBlogett 和@Compass 的回复。

这是工作代码

public ArrayList<BigInteger> squareFree () {
index = 0;
fibValues_noSqr = fibValues;
ArrayList<BigInteger> squares = new ArrayList<BigInteger>();

int sqrScan;

for (index = 0; index < fibValues_noSqr.size(); index++) {
squares.add(BigInteger.valueOf(powerOf(index + 2, 2)));
}

for (index = 0; index < fibValues_noSqr.size(); index++) {
for (sqrScan = 0; sqrScan < fibValues_noSqr.size(); sqrScan++) {
if (squares.get(index).compareTo(fibValues_noSqr.get(sqrScan)) < 0
&& fibValues_noSqr.get(sqrScan).mod(squares.get(index)) == new BigInteger("0")) {

fibValues_noSqr.remove(sqrScan);
}
}

更新了 if 语句

for (index = 0; index < fibValues_noSqr.size(); index++) {
for (sqrScan = 0; sqrScan < fibValues_noSqr.size(); sqrScan++) {
if (squares.get(index).compareTo(fibValues_noSqr.get(sqrScan)) < 0
&& fibValues_noSqr.get(sqrScan).mod(squares.get(index)).equals(BigInteger.ZERO)) {

fibValues_noSqr.remove(sqrScan);
}

关于java - 对于Java BigInteger类,有没有办法定义一个具有多个条件的if语句,并用逻辑运算符分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56450232/

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