1083:计算星期几-信息学奥赛一本通
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
// 今天外面又在钻地施工,只能静默录课了,有问题请提问
string weekDays[]={"Sunday","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday"};
// 把Sunday放到days[0]的位置,因为从星期天开始
int a,b,days=1;
// days是用来记录过去的天数,因为0<a≤100,0<b≤10000,所以最少days=1
cin>>a>>b;
for(int i=1;i<=b;i++){
// 不能用pow(),会有过载的问题
// 只能手动乘
days*=a;
// b有几次方,就要乘几次a
days%=7;
// 为了防止过载,乘一次就要模一次7,减少数据规模
}
cout<<weekDays[days];
// 如果刚好%7=0那么就是周日,剩下的数据过一天就+1
return 0;
}