模拟/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 }

 

你可能感兴趣的:(calendar)