【问题描述】
已知今天是星期六,请问 20的22 次方天后是星期几?
注意用数字 1 到 7 表示星期一到星期日。
注意:int和long的数据长度不足以支撑20的22次方,因此应用BigInteger
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger d1 = new BigInteger("20");
BigInteger week = new BigInteger("7");// 每周七天
BigInteger day = new BigInteger("6");// 现在为星期六
BigInteger d2 = d1.pow(22);// 得到20的22次方
BigInteger days = d2.remainder(week);// 得到20的22次方天除以7的余数,即不能再凑成整星期的天数
BigInteger allDay = days.add(day);// 当前星期加上剩余天数
BigInteger newDay = allDay.remainder(week);
System.out.println(newDay);
}
}
最后newDay=0,则为星期日