2723:不吉利日期
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)
输入
- 输入有一行,即一月一日星期几(w)。(1 <= w <= 7) 输出
- 输出有一到多行,每行一个月份,表示该月的13日是星期五。 样例输入
-
7
样例输出
-
1 10
提示
-
1、3、5、7、8、10、12月各有31天
4、6、9、11月各有30天
2月有28天
来源
计算概论化学学院期末考试
#include<stdio.h>
int dayofmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
struct Date{
int day;
int month;
int year;
void nextday(){
day++;
if(day>dayofmonth[month]){
day=1;month++;
if(month>12) {
year++; month=1;
}
}
}
};
int buf[13][33];
int main(){
int n;
scanf("%d",&n);
Date tmp;
tmp.day=1;
tmp.month=1;
tmp.year=0;
int cnt=0;
while(tmp.year!=1){
buf[tmp.month][tmp.day]=cnt;
tmp.nextday();
cnt++;
}
for(int i=1;i<13;i++){
int len=buf[i][13];
if((n+len)%7==5){
printf("%d\n",i);
}
}
return 0;
}