Java 大整数模';%';运作及;少于/多于操作
嗨,我有一个算法,在这个算法中我需要对BigInt进行运算 我知道BigInt可以通过数学课进行操作,例如:Java 大整数模';%';运作及;少于/多于操作,java,operators,long-integer,biginteger,modulo,Java,Operators,Long Integer,Biginteger,Modulo,嗨,我有一个算法,在这个算法中我需要对BigInt进行运算 我知道BigInt可以通过数学课进行操作,例如: import java.math.*; BigInteger a; BigInteger b = BigInteger.ZERO; BigInteger c = BigInteger.ONE; BigInteger d = new BigInteger ("3"); BigInteger e = BigInteger.valueOf(5); a.multiply(b); a.add(
import java.math.*;
BigInteger a;
BigInteger b = BigInteger.ZERO;
BigInteger c = BigInteger.ONE;
BigInteger d = new BigInteger ("3");
BigInteger e = BigInteger.valueOf(5);
a.multiply(b);
a.add(b);
a.substract(b);
a.divide(b);
我需要能够申请超过一段时间的条件,例如
while (a > 0) {
这给我一个语法错误,它是“二进制运算符“>”的错误操作数类型,第一个类型:java.math.BigInteger,第二个类型:int
我还需要能够将模(%)运算符应用于BigInteger
b = a % c;
有人能建议一种方法吗
如果没有解决方案,那么我将不得不使用reduce函数(这远非理想)以某种方式将我的BigInteger操作成一个唯一的Long
Silverzx.对于比较大整数,您可以使用
compareTo
,但在特殊情况下,当您将signum
方法与0进行比较时,也可以使用signum
方法(并且可能会快一点)。对于给定除法的剩余部分,您可以使用mod
方法(此处的更好选项)或者也可以使用除法和mainder
,它返回一个包含除法结果和余数的数组。要比较大整数
,请使用
对于模(%
),使用
还有。太好了,我现在会有一个谷歌,我看不出比较器是如何工作的,但是。mod是有意义的!非常感谢!@AlvinWong你应该加上这个作为答案。我不明白如何使用比较器来检查BigInt是否大于零。是这样吗?biginger n=“2712598012958912580129859?”"; BigInteger零=BigInteger.零;while(n.compareTo(zero)>0{@silverzx。或者,正如我所建议的:
while(n.signum()>0)
顺便说一下,在您提供的解决方案中,您不需要zero
只需在循环中使用biginger.zero
while(a.compareTo(BigInteger.ZERO) > 0)
//...
BigInteger blah = a.mod(b);