一、题目

2723 不吉利日期

http://poj.grids.cn/practice/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号在一年中是第几天sum,然后满足判断条件(sum+w)%7==6即可
三、AC源代码
 1 #include <iostream>
2 using namespace std;
3
4 int num(int d);
5 int month(int m);
6
7 int main()
8 {
9 int w;
10 int i;
11 cin>>w;
12 for(i=1;i<=12;i++)
13 if((num(i)%7+w)%7==6)
14 cout<<i<<endl;
15 return 0;
16 }
17
18 int month(int m)
19 {
20 switch(m)
21 {
22 case 1:
23 case 3:
24 case 5:
25 case 7:
26 case 8:
27 case 10:
28 case 12:return 31;
29 case 2:return 28;
30 default:return 30;
31 }
32 }
33
34 int num(int d)
35 {
36 int i,sum=0;
37 for(i=1;i<d;i++)
38 sum+=month(i);
39 return sum+13;
40 }
posted on 2011-12-18 13:52  小狗狗ACM  阅读(656)  评论(0编辑  收藏  举报