题目给定一年第一天是星期几,求哪一个月的13号是星期五。
总时间限制: 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。