试题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); } }