目录
题目描述
在西方,每月的 13 日如果正好是星期五,一般称之为黑色星期五。给定一个整数y,代表所在年份,再给定一个整数w,代表该年度 1 月 1 日的星期数(周一至周六以1到6表示,周日以7表示)。请输出该年度中,哪些月份存在黑色星期五。
输入格式
两个整数:y 与 w。
输出格式
若干行:每行一个整数,表示当年黑色星期五的月份,按照从小到大的顺序输出,若当年不存在黑色星期五,输出 None
。
数据范围
- 1≤y≤10000;
- 1≤w≤7
代码实现
月份数组
int D[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
定义变量
int y,w,hv;
输入变量
cin>>y>>w;
判断闰年
if(y%4==0&&y%100!=0||y%400==0)D[2]=29;
其他代码
#include<bits/stdc++.h>
using namespace std;
int D[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,w,hv;
int main(){
cin>>y>>w;
if(y%4==0&&y%100!=0||y%400==0)D[2]=29;
w=(w+12)%7;
for(int i=1;i<=12;i++){
if(w==5){cout<<i<<endl;hv=1;}
w=(w+D[i])%7;
}
if(!hv)cout<<"None";
return 0;
}