BigInteger数字的循环java



我使用下面的代码来找到完美平方数字,但不能做像BigIntegers这样的大数字,另一个问题是我不能创建完美循环

Scanner in = new Scanner(System.in);
int q = in.nextInt();
BigInteger[] l = new BigInteger[q];
BigInteger[] r = new BigInteger[q];
int[] num = new int[q];
for (int i = 0; i < q; i++) {
l[i] = in.nextBigInteger();
r[i] = in.nextBigInteger();
num[i]=0;
for (BigInteger j = l[i]; j.compareTo(r[i]) > 0; j.add(BigInteger.ONE)) {
**This loop doesn't work**
}            
}

这里有两个问题。首先,假设j开始时比r[i]小,则条件相反——只要它更小,j.compareTo(r[i]就会返回一个小于零而不大于零的值。其次,add不修改BigInteger实例,它返回一个新的BigInteger和加法的结果(即,您可以认为它是+运算符,而不是+=运算符(。

简而言之,这就是你的循环应该是什么样子:

for (BigInteger j = l[i]; j.compareTo(r[i]) < 0; j = j.add(BigInteger.ONE)) {
// Code goes here...

相关内容

  • 没有找到相关文章

最新更新