当我在 Java 中进行以下计算 (97 ^ 23) mod 187
时:
double ret = (Math.pow (97, 23))% 187;
ret值为74
。 (Math.Pow (97, 23))
的值为 4.963064143419832E45;
我的问题如下:表达式 (97 ^ 23) mod 187 = 58
的值。尝试做windows计算器。我尝试过使用 BigDecimal
但仍然无法获得我需要的值。
在Windows计算器中输入(97 ^ 23)
,它会返回4.9630641434198319969863989680919 +45
,而且更加精确。
如果有人可以帮助我,非常感谢!
最佳答案
模块化功能在 BigInteger
类中实现:
BigInteger a = new BigInteger("97");
BigInteger x = new BigInteger("23");
BigInteger m = new BigInteger("187");
BigInteger result = a.modPow(x, m); // 97^23 % 187
要获取 int 形式的结果,您可以使用 intValue()
方法。
关于java - 处理大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256378/