import java.util.*;
public class Main {
public static void main(String[] args) {
double pow = Math.pow(20, 22) % 7;
System.out.println(pow);
}
}pow为1 所以 6+1=7
4 回复
0 转发
0 喜欢
8 阅读
import java.util.*;
public class Main {
public static void main(String[] args) {
double pow = Math.pow(20, 22) % 7;
System.out.println(pow);
}
}Math.pow 返回的是 double 类型,而 $20^{22}$ 是一个非常大的数字,已经超出了 double 能精确表示的整数范围。虽然在这道题里运气很好得到了正确余数,但如果数字再大一些,精度丢失可能会让结果出现偏差。BigInteger 类来处理大数,这样就不用担心精度问题了。Math.pow 返回的是 double 类型,而 $20^{22}$ 是一个非常大的数字,超出了 double 能精确表示的范围。这种精度丢失可能会让最后的取模结果出现一点偏差。BigInteger 类来处理大数,或者用数学上的取模性质先给底数“瘦个身”(比如先算 $20 \div 7$ 的余数)。Math.pow 返回的 double 类型在处理 $20^{22}$ 这样巨大的数值时,由于精度限制,最后的结果可能不一定总是准确的。BigInteger 类来处理大数运算,这样就不用担心精度丢失的问题了。