因为题目需要计算7的22次方,那我们可以设想一下使用Int肯定是不够的。那么使用long也是不行的(大家可以尝试一下)。那么我们必须使用BigInteger。
Int是32位的数据存储容量:
最小值-2^31,即-2147483648;最大值2^31 - 1,即2147483647
long是64位的数据存储容量:
最小值是-9,223,372,036,854,775,808;最大值是9,223,372,036,854,775,807
BigInteger理论上可以提供与你计算机内存一样大的数字,并且提供了相关方法。
还要注意题目的条件,也就是运算符号的优先级。这道题比较简单没有坑,先次方后mod。
public static void main(String[] args) {BigInteger a=new BigInteger("7");BigInteger b=new BigInteger("1921");a=a.pow(2020);//直接使用a来接受结果a=a.mod(b);System.out.println(a);}
运行结果👇