我写了这行代码:
System.out.println(Math.pow(7, 23) % 143); // 7^23 mod 143
Run Code Online (Sandbox Code Playgroud)
我期望输出是,2但输出是93.0.有人知道我做错了什么吗?
数字"溢出" double,这是Math.pow()预期和返回的.用一个BigInteger代替:
BigInteger.valueOf(7)
.pow(23)
.mod(BigInteger.valueOf(143))
Run Code Online (Sandbox Code Playgroud)
或者按照@Felk的建议一步完成:
BigInteger.valueOf(7)
.modPow(BigInteger.valueOf(23), BigInteger.valueOf(143))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |