http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=6015
#include<iostream>
using namespace std;
typedef long long ll;
string date[]={"Monday","Tuesday","Wednesday","Thursday","Friday"};
int main()
{
int t;
cin>>t;
while(t--)
{
ll y1,y2,now;
string week;
int m1,m2,d1,d2;
cin>>y1>>m1>>d1>>week;
cin>>y2>>m2>>d2;
ll delta=((y2-y1)*360+(m2-m1)*30+d2-d1)%5;
///正数负数的差别在于该公式完全取反,结果并不是相反数
if(delta<0)
delta+=5;
///推得负数的模+模值为正数的模
for(int i=0;i<5;i++)
{
if(date[i]==week)
now=i;
}
cout<<date[(now+delta)%5]<<endl;
}
}
通过本题,了解了定义字符数组的方法,以及正负数取模的一个规律