HDU 6112 今夕何夕 (这也要写??)

Posted EricJeffrey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 6112 今夕何夕 (这也要写??)相关的知识,希望对你有一定的参考价值。

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6112

题目大意:给你一个合法的年月日,问下次同样是这个月日,星期一样的最早是哪年? 题目保证不超过四位数。

解题思路:讲道理真的需要吗? 过一年+365天,如果是闰年+366天,对7取余为0了就OK了。不过判断地方稍微有点麻烦,需要考虑今天是2 29,小于2 29和大于的情况,也不复杂(那我咋没写出来???)

代码:

 1 int y, m, d;
 2 
 3 bool isleap(int x){
 4     if((x % 4 == 0 && x % 100 != 0) || x % 400 == 0) return true;
 5     return false;
 6 }
 7 
 8 int solve(){
 9     int cnt = 0;
10     if(m == 2 && d == 29){
11         int la = y;
12         for(int i = y + 1; i <= 10000; i += 1){
13             if(isleap(i - 1)) cnt += 366;
14             else cnt += 365;
15             if(isleap(i) && cnt % 7 == 0) return i;
16         }
17     }
18     else if(m <= 2){
19         for(int i = y; i <= 10000; i++){
20             if(isleap(i)) cnt += 366;
21             else cnt += 365;
22             if(cnt % 7 == 0) return i + 1;
23         }
24     }
25     else{
26         for(int i = y + 1; i <= 10000; i++){
27             if(isleap(i)) cnt += 366;
28             else cnt += 365;
29             if(cnt % 7 == 0) return i; 
30         }
31     }
32 }
33 int main(){
34 //    freopen("in.txt", "r", stdin);
35 //    freopen("out.txt", "w", stdout);
36     int T;
37     scanf("%d", &T);
38     while(T--){
39         scanf("%d", &y); getchar();
40         scanf("%d", &m); getchar();
41         scanf("%d", &d);
42         int ans = solve();
43         printf("%d\n", ans);
44     } 
45 }

题目:

 

 

今夕何夕

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 942    Accepted Submission(s): 316


Problem Description
今天是2017年8月6日,农历闰六月十五。

小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
 

Input
第一行为T,表示输入数据组数。

每组数据包含一个日期,格式为YYYY-MM-DD。

1 ≤ T ≤ 10000

YYYY ≥ 2017

日期一定是个合法的日期

 

Output
对每组数据输出答案年份,题目保证答案不会超过四位数。
 

Sample Input
3 2017-08-06 2017-08-07 2018-01-01
 

Sample Output
2023 2023 2024
 

Source

 

以上是关于HDU 6112 今夕何夕 (这也要写??)的主要内容,如果未能解决你的问题,请参考以下文章

hdu 6112 今夕何夕(模拟)

Zeller公式计算星期几HDU 6112 今夕何夕

HDU 6112 今夕何夕 数论

百度之星初赛A hdu6112

2017"百度之星"程序设计大赛 - 初赛(A)-1001.小C的倍数问题(HDU6108) 1005.今夕何夕-蔡勒公式 (HDU6112)

百度之星初赛A轮 hdu 6108 6112 6113