总时间限制:
1000ms
内存限制:
65536kB
描述
假设今天是星期日,那么过ab天之后是星期几?
输入
两个正整数a,b,中间用单个空格隔开。0 < a <= 100, 0 < b <= 10000。
输出
一个字符串,代表过ab天之后是星期几。
其中,Monday是星期一,Tuesday是星期二,Wednesday是星期三,Thursday是星期四,Friday是星期五,Saturday是星期六,Sunday是星期日。
样例输入
3 2000
样例输出
Tuesday
#include <bits/stdc++.h>
using namespace std;
const int DAYS = 7;
string days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// 快速模幂函数
int powermod(int a, int b, int mod)
{
int res = 1;
while(b) {
if(b & 1) {//是单数的幂时
res *= a;//返回值乘底
res %= mod;//取模
}
a *= a;// 底乘底
a %= mod;//取模
b >>= 1;//幂除2
}
return res;
}
int main()
{
int a, b;
cin >> a >> b;
cout << days[(powermod(a, b, DAYS)) % DAYS] << endl;
return 0;
}