zoukankan      html  css  js  c++  java
  • hdu 4515 小Q系列故事——世界上最遥远的距离

    题目

    一次就过的日期问题得纪念一下,感谢几组测试数据

    加法的测试数据: 38 39 282 283 7 8     减法测试数据: 52 87345 24 23 100000

    答案在Excel中测试吧,主要是很多细节性的问题要考虑到。

    #include<iostream>
    #include <algorithm>
    #include <set>
    #include <cstdio>
    using namespace std;
    int md[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int leap(int n)
    {
        if((n%4==0&&n%100!=0)||(n%400==0))
            return 1;
        return 0;
    }
    void fun1(int d)
    {
        if(d<=7) printf("2013/03/%02d ",24+d);
        else{
            d = d-7;
            int year = 2013,month = 4;
            int tmp,flag= 0;
            while(d>0)
            {
                tmp = d;
                if(month == 2&&flag==1&&d-md[month]-1>0)
                    d = d-md[month++]-1;
                else if(d-md[month]>0)
                    d = d-md[month++];
                else break;
    
                if(month>12){
                    month = 1;
                    year++;
                    if(leap(year)==1)
                        flag = 1;
                    else flag = 0;
                }
            }
            printf("%d/%02d/%02d ",year,month,tmp);
        }
    }
    void fun2(int d)
    {
        if(d<24) printf("2013/03/%02d
    ",24-d);
        else{
            d = d-24;
            int year=2013,month=2;
            int flag = 0,tmp;
    
            while(d>0)
            {
                if(month==2&&flag==1&&d-md[month]-1>=0)
                    d = d-md[month--]-1;
                else if(d-md[month]>=0)
                    d = d-md[month--];
                else break;
                if(month<1)
                {
                    year--;
                    if(leap(year)==1) flag=1;
                    else flag=0;
                    month = 12;
                }
            }
            printf("%d/%02d/%02d
    ",year,month,md[month]-d);
        }
    }
    int main()
    {
        int T,d;cin>>T;
        while(T--)
        {
            cin>>d;
            fun1(d);
            fun2(d);
        }
        return 0;
    }
    
  • 相关阅读:
    golang通知协程退出
    Linux Centos7下安装Elasticsearch
    es
    Laravel 别名 Facades的用法
    SVN使用时遇到的小问题
    http 重定向到 https
    Git-版本回退
    selenium---上传文件(非input标签)
    selenium---生成BeautifulReport报告
    windows搭建ngnix图片服务器
  • 原文地址:https://www.cnblogs.com/qie-wei/p/12094116.html
Copyright © 2011-2022 走看看