赞
踩
已知今天是星期六,请问
2
20
2^{20}
220 天后是星期几?
注意用数字 1 到 7 表示星期一到星期日。
这个问题很简单,无论当前周几,只要计算出这个天数对 7 取模。比如是10天后,那么就是在一周之后多三天,此时如果是想知道 10 天后的是星期几,无需考虑那一周,只需要在当前日期往后挪三天。此处需要注意一个特例,当前是周六,那么它的一天之后应该是周日,此时对 7 取模的结果为 0,需要对这个情况特判。
此处不涉及什么Java和C++的语法区别,就不加上C++代码了
public class Main { static long ksm(long a, long b, long mod) { long res = 1; while (b > 0) { if ((b & 1) == 1) { res = res * a % mod; } b = b >> 1; a = a * a % mod; } return res; } public static void main(String[] args) { long day = ksm(20, 22, 7); day = (6 + day) % 7; if (day == 0) day = 7; System.out.println(day); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。