模拟/sgu 115 Calendar

题意

  已知2001.1.1是周一 请你求出2001.m.n是周几

  如果m,n不合法 输出Impossible

分析

  开一个数组记录一下每个月的日子,然后模拟

  通过循环加到当前的日子

  mod 7 即可求出为周几

 

  这题让我想到了usaco的那道星期五是几的题....

 

Accepted Code

 1 /*
 2     PROBLEM:sgu 115
 3     AUTHER:Rinyo
 4     MEMO:模拟
 5 */
 6 
 7 #include<cstdio>
 8 const int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 9 int main()
10 {
11     int n,m;
12     scanf("%d%d",&n,&m);
13     if (n>month[m]) printf("Impossible");
14     else
15     {
16         int now=n;
17         for (int i=1;i<m;i++) now+=month[i];
18         printf("%d\n",(now-1)%7+1);
19     }
20     return 0;
21 }

 

posted @ 2012-12-18 21:14  Rinyo  阅读(210)  评论(0编辑  收藏  举报