OpenJudge 2723

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天
//先算出每月13是一年中的第几天存于ans数组中,在判断是否是星期五 
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int ans[12];
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int fun(int num)
{
    int sum = 0;
    int i,j,k;
    for(i=0;i<num;i++)
        sum  += month[i];
    return sum + 12;//不加13,那么不再两个日期想减 
}    
int main()
{
    int i,j,k,T;
    cin>>T;
    memset(ans,0,sizeof(ans));
    for(i=0;i<12;i++)
        ans[i] = fun(i);
    for(i=1;i<=12;i++)
    if(((ans[i-1]%7+T)%7)==5)
        cout<<i<<endl;
   // system("pause");
    return 0;
}
    
原文地址:https://www.cnblogs.com/hxsyl/p/2642414.html