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;

}

    

 

你可能感兴趣的:(open)