/在国外,每月的13号和每周的星期5都是不吉利的。
特别是当13号那天恰好是星期5时,更不吉利。
已知某年的一月一日是星期w,并且这一年一定不是闰年,
求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。/
刚开始做这个题没有什么想法,第一反应是做日历,想了很久还是用翻数字的方法,用d控制天数,再用一个比较笨的方法即手动创建一个每月13号是第几天的数组,当d和数组中元素相等时即为每个月的13号,再通过判断w即可。而w的判断则也是翻数字,当w>7后-7,保证w不会超过7
#include<stdio.h>
int main(){
int w,d=1,j=1;
int i[13]={0,13,44,72,103,133,164,194,225,256,286,317,347};
scanf("%d",&w);//代表一月一日周几
while(d<=365){
if(w>7){
w-=7;
}
if(d==i[j]){
if(w==5) printf("%d\n",j);
j++;
}
w++;
d++;
}
return 0;
}