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

    简单题目,先把时间都归到整年,然后再计算。同时为了防止减法出现xx月00日的情况,需要将d先多增加1,再恢复回来。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cstdlib>
     4 
     5 int sy, sm, sd;
     6 int ay, am, ad;
     7 
     8 int map[2][13] = {
     9     {0,31,28,31,30,31,30,31,31,30,31,30,31},
    10     {0,31,29,31,30,31,30,31,31,30,31,30,31},
    11 };
    12 
    13 int isLeap(int n) {
    14     if ( (n%4==0 && n%100!=0) || (n%400 == 0) )
    15         return 366;
    16     else
    17         return 365;
    18 }
    19 
    20 void subDate(int d) {
    21     int i, j, k;
    22     
    23     sy = 2013;
    24     d += 283;
    25     while (d > isLeap(sy)) {
    26         d -= isLeap(sy);
    27         --sy;
    28     }
    29     i = isLeap(sy)==366 ? 1:0;
    30     j = 12;
    31     while (d > map[i][j]) {
    32         d -= map[i][j];
    33         --j;
    34     }
    35     sm = j;
    36     sd = map[i][j] - d + 1;
    37 }
    38 
    39 void addDate(int d) {
    40     int i, j, k;
    41     
    42     ay = 2013;
    43     d += 83;
    44     while (d > isLeap(ay)) {
    45         d -= isLeap(ay);
    46         ++ay;
    47     }
    48     i = isLeap(ay)==366 ? 1:0;
    49     j = 1;
    50     while (d > map[i][j]) {
    51         d -= map[i][j];
    52         ++j;
    53     }
    54     am = j;
    55     ad = d;
    56 }
    57 
    58 int main() {
    59     int t, d;
    60     
    61     #ifndef ONLINE_JUDGE
    62         freopen("data.in", "r", stdin);
    63         //freopen("data.in", "r", stdout);
    64     #endif
    65     
    66     scanf("%d", &t);
    67     while (t--) {
    68         scanf("%d", &d);
    69         subDate(d);
    70         addDate(d);
    71         printf("%04d/%02d/%02d %04d/%02d/%02d
    ", ay,am,ad, sy,sm,sd);
    72     }
    73     
    74     return 0;
    75 }
  • 相关阅读:
    20201112 装饰器之函数即变量
    2月13日:毕业设计进度
    2月12日:毕业设计进度
    2月11日:毕业设计进度
    2月10日:毕业设计进度
    2月9日:毕业设计进度
    2月8日:毕业设计进度
    2月7日:毕业设计进度
    2月6日:毕业设计进度
    2月5日:毕业设计进度
  • 原文地址:https://www.cnblogs.com/bombe1013/p/4177342.html
Copyright © 2011-2022 走看看