我需要知道这两个循环方法是否以及如何匹配,根据他们自己的语法(具有'整数'类型的两种方法是正确且测试的,但是这两个方法与" BigInteger"类型的类似物不是(。这两种方法(Biginteger类型(是否相当于整数上的方法?技巧在哪里?
for-loop方法(整数(:
public static int greatest(int x, int y, int n){
for(int i = n; i > 0; i--) {
n -= 1;
if (n % x == 0 && n % y == 0){
break;
}
}
return n;
}
public static int smallest(int x, int y, int n){
for(int i = 0; i < n*n; i++) {
n += 1;
if (n % x == 0 && n % y == 0){
break;
}
}
return n;
}
vs for-loop方法(bigintegers(:
public static BigInteger greatest(BigInteger x, BigInteger y, BigInteger n){
for(BigInteger i = n; i.compareTo(BigInteger.ONE) == 0; i = i.subtract(BigInteger.ONE)) {
n = n.subtract(BigInteger.ONE);
if (n.mod(x) == BigInteger.ZERO && n.mod(y) == BigInteger.ZERO){
break;
}
}
return n;
}
public static BigInteger smallest(BigInteger x, BigInteger y, BigInteger n){
for(BigInteger i = BigInteger.ZERO; i.equals(n.multiply(n)); i = i.add(BigInteger.ONE)) {
n = n.add(BigInteger.ONE);
if (n.mod(x) == BigInteger.ZERO && n.mod(y) == BigInteger.ZERO){
break;
}
}
return n;
}
(您的建议非常欢迎,谢谢(
与biginteger的循环,在您的第一个版本中应为
for(BigInteger i = n; i.compareTo(BigInteger.ZERO) == 1; i = i.subtract(BigInteger.ONE)) {
...
}
我看不到您的第二个BigInteger版本与第一个版本如何做同一件事。我没有测试它,但是当您循环到N的正方形时,这似乎真的很奇怪。