zoukankan      html  css  js  c++  java
  • 某年某月的某一天

    某年某月的某一天
    Time Limit: 1000 MS Memory Limit: 32768 K
    Total Submit: 58(31 users) Total Accepted: 32(26 users) Rating: Special Judge: No
    Description

      因为大雄考了有史以来也是唯一一次的100分,叮当猫答应带大雄去未来看一看。但是笨蛋大雄把时光机的时间调错了,结果回到了古代。叮当猫的时光机是这么用的:输入一个数n,时光机就会去到n天后或者是n天前,然后选择是往未来还是回古代。但是大雄只记得输入n天,忘了选择是去未来了。

      现在告诉你大雄输入的天数,请你算出本来他们打算去的是未来哪一天以及现在在古代的哪一天。以今天,即2013年9月7号为当前天数,即算出2013年9月7号的n天前和n天后是几年几月几日。

    Input

      第一行输入一个数T,表示有T组样例。

      接下来T行是T组数据,每组数据包含一个正整数n(n<=100000)。

    Output

      请计算并输出大雄本来打算去的未来的某年某月某日,以及最后去了的古代的某年某月某日。

      输出日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,详情参考simple output。

    Sample Input

    3

    18

    26

    31

    Sample Output

    2013/09/25 2013/08/20

    2013/10/03 2013/08/12

    2013/10/08 2013/08/07

    Author
    曾卓敏

    做麻烦了

    我的代码:

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    using namespace std;
    bool check(int year)
    {
    if((year%4==0&&year%100!=0)||(year%400==0))
    {
    return true;
    }
    return false;
    }
    int year,month,day;
    void up(int n)
    {
    year=2013;
    month=9;
    day=7;
    if(n>=24)
    {
    n-=24;
    month=10;
    day=1;
    }
    while(n>0)
    {
    if(month==2)
    {
    if(check(year))
    {
    if(n>=29)
    {
    n-=29;
    month++;
    day=1;
    }
    else
    {
    day+=n;
    n=0;

    }
    }
    else
    {
    if(n>=28)
    {
    n-=28;
    month++;
    day=1;
    }
    else
    {
    day+=n;
    n=0;

    }
    }
    }
    else if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
    {
    if(n>=31)
    {
    n-=31;
    month++;
    if(month>12)
    {
    year++;
    month=1;
    }
    day=1;
    }
    else
    {
    day+=n;
    n=0;
    }
    }
    else
    {
    if(n>=30)
    {
    n-=30;
    month++;
    day=1;
    }
    else
    {
    day+=n;
    n=0;
    }
    }
    }
    }
    void down(int n)
    {
    year=2013;
    month=9;
    day=7;
    if(n>=7)
    {
    n-=7;
    day=31;
    month--;
    }
    while(n>0)
    {
    if(month==3)
    {
    if(n>=31)
    {
    if(check(year))
    {
    n-=31;
    month--;
    day=29;
    }
    else
    {
    n-=31;
    month--;
    day=28;
    }
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    else if((month==1)||(month==8))
    {
    if(n>=31)
    {
    month--;
    if(month==0)
    {
    year--;
    month=12;
    }
    day=31;
    n-=31;
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    else if((month==5)||(month==7)||(month==10)||(month==12))
    {
    if(n>=31)
    {
    month--;
    day=30;
    n-=31;
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    else if(month==2)
    {
    if(check(year))
    {
    if(n>=29)
    {
    n-=29;
    day=31;
    month--;
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    else
    {
    if(n>=28)
    {
    n-=28;
    day=31;
    month--;
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    }
    else
    {
    if(n>=30)
    {
    n-=30;
    month--;
    day=31;
    }
    else
    {
    day-=n;
    n=0;
    }
    }
    }
    }

    int main()
    {
    int T;
    while(~scanf("%d",&T))
    {
    while(T--)
    {
    int n;
    scanf("%d",&n);
    up(n);
    printf("%04d/%02d/%02d ",year,month,day);
    down(n);
    printf("%04d/%02d/%02d ",year,month,day);
    }
    }
    return 0;
    }

  • 相关阅读:
    杂项
    导出查询数据(大数据量)
    设置现有字段自增
    C++ 矩形交集和并集的面积-离散化
    Python使用flask架构、跨域
    匈牙利命名法
    C++ main函数
    windows编译boost
    mfc HackerTools监控键盘按键
    mfc HackerTools远程线程注入
  • 原文地址:https://www.cnblogs.com/beige1315402725/p/4864946.html
Copyright © 2011-2022 走看看