A - Calandar(ZOJ 4113)

Time Limit : 1 Second      Memory Limit : 65536 KB

Source : 第十届山东省ACM省赛

Problem Link : ZOJ 4113

Author : Houge  Date : 2019-5-18

 

题目大意:

  有一个神奇的星球,在那里,一年有12个月,每月都有30天。并且在那个星球上一周只有五天。给你今天的日期和星期,问你一个目标日期是星期几。

分析:

  签到题之一,仔细思考便容易发现所要求的日期是星期几和月份根本没有关系(一周五天,每个月都是30天,一个月正好是6次循环),和年份就更没有关系了。只要求出两个日的关系,再输出对应的星期即可。

代码:

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int t;
 8     scanf("%d",&t);
 9     while(t--)
10     {
11         int crrday,disday,temp;
12         string cday;
13         scanf("%*d%*d%d",&crrday); cin>>cday;
14         scanf("%*d%*d%d",&disday);
15 
16         if(cday=="Monday") temp=0;
17         if(cday=="Tuesday") temp=1;
18         if(cday=="Wednesday") temp=2;
19         if(cday=="Thursday") temp=3;
20         if(cday=="Friday") temp=4;
21 
22         if(crrday<=disday) temp=(temp+(disday-crrday)%5)%5;
23         else temp=(temp+5-(crrday-disday)%5)%5;
24         //cout<<"Test temp : "<<temp<<endl;
25         if(temp==0) printf("Monday\n");
26         if(temp==1) printf("Tuesday\n");
27         if(temp==2) printf("Wednesday\n");
28         if(temp==3) printf("Thursday\n");
29         if(temp==4) printf("Friday\n");
30     }
31     return 0;
32 }

 

 

 

    

posted @ 2019-05-18 23:14  CSGO_BEST_GAME_EVER  阅读(725)  评论(0编辑  收藏  举报