试题A:星期计算
简介:本体主要的难点为处理大整数存储问题,本题介绍三种写法,一种是Java的特色API,另两种更普遍。
答案:7
题解1(double):
public class Main{
public static void main(String [] arg){
// double 类型不会超范围
double res = Math.pow(20, 22);
res %= 7;
System.out.println(res + 6);
}
}
题解2(BigInteger):
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger bg = new BigInteger(20+""); // BigInteger的参数为字符串
BigInteger res = bg.pow(22).remainder(BigInteger.valueOf(7)).add(BigInteger.valueOf(6));
System.out.println(res);
}
}
题解3(循环法):
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
int n = 22;
int res = 0;
// 通过循环解决问题
while(n > 0)
{
res = 20 * 20 % 7;
n --;
}
System.out.println(res + 6);
}
}