题解 | #Day of Week#
Day of Week
https://www.nowcoder.com/practice/a3417270d1c0421587a60b93cdacbca0
#include <iostream>
using namespace std;
//公元元年是0001年
int p[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
string q[13]={"a","January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November","December"};
string r[7]={"Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int Run(int k)
{
if((k%400==0)||((k%4==0)&&(k%100!=0)))return 1;
else return 0;
}
int main() {
int d, y;
string b;
int m;
while (cin >> d >> b >> y) {
for(int i=1;i<=12;i++)
{
if(b==q[i]){
m=i;
break;
}
}
int sum1=0;//这里一定要清零,否则除了第一行测试用例,其他测试用例都是错的
for(int i=1;i<=y-1;i++)
{
if(Run(i)==1)sum1+=366;
else sum1+=365;
}
if(Run(y)==1)p[2]=29;
else p[2]=28;
for(int i=1;i<=m-1;i++)
{
sum1+=p[i];
}
sum1+=d;
sum1%=7;
cout<<r[sum1]<<endl;
}
}
查看11道真题和解析
