首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigInteger gcd值

BigInteger gcd值
EN

Stack Overflow用户
提问于 2014-04-04 13:55:31
回答 2查看 712关注 0票数 0
代码语言:javascript
复制
BigInteger n = BigInteger.valueOf(5);
BigInteger a = BigInteger.valueOf(3);
System.out.println(a.gcd(n) != BigInteger.ONE);

为什么这被认为是true,尽管5和3的gcd是1?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 13:57:27

不应使用!=运算符,而应使用equals()方法。

代码语言:javascript
复制
!(a.gcd(n).equals(BigInteger.ONE))

解释:

在Java中,==!=操作符在对象上使用时,比较变量是否引用内存中相同的对象,而不是对象是否具有相同的值。equals()方法检查它们是否具有相同的值。

票数 3
EN

Stack Overflow用户

发布于 2014-04-04 13:59:11

因为BigInteger是一个对象,所以您应该使用等于。您可以使用==!=来比较对象的引用。

代码语言:javascript
复制
!(a.gcd(n).equals(BigInteger.ONE));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22864841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档