Java中模的计算
我搞不懂为什么mod的计算不正确,
我有a=23
,b=86609
,c=17
其中(d=a^c mod b
)。根据计算器,结果应该是16559
但我得到49432
public class Mod {
public static void main(String[] args) {
int a=23;
int b=86609;
int c=17;
double d= (Math.pow(a,c)%b);
System.out.print(d);
}
}
# 1 楼答案
23^17对双人来说太大了。用
BigInteger
计算:# 2 楼答案
问题不在模数部分。你一进入战俘区就会得到错误的结果
23^17精确地说是1.41050039560662968926103×10^23。看看Java认为它等于什么:
显然这还不够精确
这个问题的解决方案是
BigInteger
:记住
import java.math.BigInteger;