zoukankan      html  css  js  c++  java
  • 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
    ", 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
  • 相关阅读:
    Java 回调函数的理解
    Java对象初始化
    Hibernate中get方法和load方法的区别
    Java 如何判断导入表格某列是否有重复数据
    Java学习之Java的单例模式
    Java中怎么设置文件权限
    div居中问题
    JSON
    js
    ajax
  • 原文地址:https://www.cnblogs.com/bolderic/p/7351649.html
Copyright © 2011-2022 走看看