您好,我有一个算法,需要将运算应用于 BigInt。
我知道 BigInt 可以使用 Maths 类进行操作,例如:
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;
谁能建议一种方法来做到这一点?
如果没有解决方案,那么我将不得不使用归约函数以某种方式将 BigInteger 操作为唯一的 Long (这远非理想)。
银ZX。
比较BigInteger
, use BigInteger.compareTo http://docs.oracle.com/javase/1.4.2/docs/api/java/math/BigInteger.html#compareTo(java.math.BigInteger).
while(a.compareTo(BigInteger.ZERO) > 0)
//...
对于模 (%
), use BigInteger.mod http://docs.oracle.com/javase/1.4.2/docs/api/java/math/BigInteger.html#mod(java.math.BigInteger).
BigInteger blah = a.mod(b);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)