zoukankan      html  css  js  c++  java
  • 百度之星初赛A 今夕何夕

    今夕何夕

    今天是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

    题解 :题是水题,但是用到了一个基姆拉尔森计算公式,倒是少见,
    写此博客,全做记公式,
    int k=(day+mou*2+3*(m+1)/5+yeas+yeas/4-yeas/100+yeas/400)%7

    #include<stdio.h>
    
    int p(int yeas,int mou,int da)
    {
                if(mou==1||mou==2)
            {
                mou+=12;
                yeas--;
             } 
            int k=(da+mou*2+3*(mou+1)/5+yeas+yeas/4-yeas/100+yeas/400)%7;
            return k+1;
    }
    
    bool d(int n)
    {
        if(n%4==0&&n%100!=0||n%400==0)
        return true;
        return false;
    }
    
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int yeas,mou,da;
            scanf("%d-%d-%d",&yeas,&mou,&da);
            int k=p(yeas,mou,da);
            if(mou==2&&da==29)
            {
                while(1)
                {
                    yeas++;
                    if(p(yeas,mou,da)==k&&d(yeas))
                    break;
                }
                printf("%d
    ",yeas);
            }
            else
            {
                while(1)
                {
                    yeas++;
                    if(p(yeas,mou,da)==k)
                    break;
                }   
                printf("%d
    ",yeas);
            }       
        }
        return 0;
    }
  • 相关阅读:
    前端从头再出发之表单
    百度前端学院第19天作业
    百度前端学院第17到18天和第16天的作业
    百度前端学院第九天到第11天笔记
    自己爬虫的几个案例
    Magnum Kubernetes源码分析(一)
    magnum devstack部署
    kubernetes service分析
    玩转docker镜像和镜像构建
    Dockerfile与Docker构建流程解读
  • 原文地址:https://www.cnblogs.com/-xiangyang/p/9220248.html
Copyright © 2011-2022 走看看