Skip to content

Latest commit

 

History

History
58 lines (45 loc) · 1.78 KB

4019.md

File metadata and controls

58 lines (45 loc) · 1.78 KB

黑色星期五 4019: 黑色星期五

题目给定一年第一天是星期几,求哪一个月的13号是星期五。

题目来源

4019: 黑色星期五

总时间限制: 1000ms 内存限制: 65536kB

描述

若某个月13号恰好是星期五,则这一天被称为黑色星期五。已知某年的一月一日是星期w,并且这一年是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)

输入

输入有多组,每组一行且为一个整数w, 指该年的一月一日是星期w。(1<=w<=7)

输出

每组数据输出一行,从小到大输出具有黑色星期五的月份,月份与月份之间用空格隔开。若没有月份具有黑色星期五,则输出NULL

样例输入

1

样例输出

9 12

可以先求出每个月的13日距离当年的第一天有多少天,然后取余确定这一天是星期几,判断输出。

#include <iostream>
using namespace std;
int main() {
	int w, i, month[12] =
	{ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 };
	while (cin >> w) {
		bool bh = false;
		for (i = 0; i < 12; ++i) {
			if ((w + month[i] + 12) % 7 == 5) {
				bh = true;
				cout << i + 1 << " ";
			}
		}
		if (!bh) {
			cout << "NULL";
		}
		cout << endl;
	}
	return 0;
}

4019.cpp 代码长度:362B 内存:128kB 时间:3ms 通过率:86% 最小内存:128kB 最短时间:0ms

每个月1号距离当年第一天的天数可以事先存在数组当中,然后通过取余计算当天是星期几,要加上当年第一天的星期数,最后取余小于7还要加1。

有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。