题目是:
1062 不吉利日期
Description
在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)
Input
输入有一行,即一月一日星期几(w)。(1<=w<=7)
Output
输出有一到多行,每行一个月份,表示该月的13日是星期五。
Sample Input
7
Sample Output
1
10
答案是:
#include<stdio.h>
void main()
{
int w,t,m,i;
m=0;
t=0;
scanf("%d",&w);
if(w>=1&&w<=7)
m=6-w;
else if(w>=6&&w<=7)
m=13-w;
int a[15]={0,31,59,90,120,151,181,212,243,273,304,334};
for(i=0;i<=11;i++)
if((a[i]+13-m)%7==0)
{t=i+1;
printf("%d\n",t);}
}
我看不懂这是如何算出来的, 帮我解释解释,谢谢了。