BigInteger n = BigInteger.valueOf(5);
BigInteger a = BigInteger.valueOf(3);
System.out.println(a.gcd(n) != BigInteger.ONE);为什么这被认为是true,尽管5和3的gcd是1?
发布于 2014-04-04 13:57:27
不应使用!=运算符,而应使用equals()方法。
!(a.gcd(n).equals(BigInteger.ONE))解释:
在Java中,==和!=操作符在对象上使用时,比较变量是否引用内存中相同的对象,而不是对象是否具有相同的值。equals()方法检查它们是否具有相同的值。
发布于 2014-04-04 13:59:11
因为BigInteger是一个对象,所以您应该使用等于。您可以使用==或!=来比较对象的引用。
!(a.gcd(n).equals(BigInteger.ONE));https://stackoverflow.com/questions/22864841
复制相似问题