acwing每日一题-8

题目

今天是 2012 年 4 月 12 日星期四,编写程序,输入今天开始到 12 月 31 日之间的任意日期,输出那一天是星期几。

输入格式

共两行,第一行包含一个整数 m,表示询问日期的月份。

第二行包含一个整数 d,表示询问日期的为该月的第几天。

输出格式

输出询问日期是星期几。

注意,要用英文表示。

周一到周日的英文表示如下:

"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"

数据范围

4≤m≤12,
1≤d≤31,
保证日期合法。

输入样例:

1
2
5
20

输出样例:

1
Sunday

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
int main()
{
int m, d, cnt = 0;
cin >> m >> d;
bool flag=true;
bool month[12] = { 1,0,1,0,1,0,1,1,0,1,0,1 };
string week[7] = { "Thursday","Friday","Saturday","Sunday","Monday","Tuesday","Wednesday" };
for (int i = 3; i < 12; i++)
{
for (int j = 1; (month[i] && j <= 31) || (!month[i] && j <= 30); j++)
{
if(i==3&&flag){j=12,flag=!flag;}
if (i+1 == m && j == d) { cout << week[cnt % 7]; return 0; }
cnt++;
}
}
return 0;
}