zoukankan      html  css  js  c++  java
  • 杭电1201--18岁生日

    18岁生日

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 23275    Accepted Submission(s): 7449


    Problem Description
    Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
     

     

    Input
    一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
     

     

    Output
    T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
     

     

    Sample Input
    1 1988-03-07
     

     

    Sample Output
    6574
     

     

    Author
    Gardon
     

     

    Source
     

     

    Recommend
    JGShining   |   We have carefully selected several similar problems for you:  1205 1215 1228 1235 1202 
     
    //没想到一次AC:
     1 #include <stdio.h>
     2 int num[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
     3 int judge(int year)
     4 {
     5     if((year % 4 == 0 && year % 100!=0) || year % 400 ==0)
     6         return 1 ;  
     7     else
     8         return 0 ;
     9 }
    10 int main() 
    11 {
    12     int i, j, n, y, m, d ;
    13     
    14     scanf("%d", &n) ;
    15     while(n--)
    16     {
    17         scanf("%d-%d-%d", &y, &m, &d) ;
    18         if(m == 2 && judge(y) && d == 29 && !judge(y+18))  //没有18岁生日 ;         
    19         {
    20             printf("-1
    ") ;
    21             continue ;
    22         }
    23         int sum = 0 ;
    24         for(i = y; i < y+18; i++)
    25         {
    26             sum += 365 ;
    27             if(judge(i))
    28             sum += 1 ;
    29         }
    30         int total = d ;
    31         for(i = 1; i < m; i++)
    32             total += num[i] ;
    33         int gq = d, nw = d ;
    34         if(judge(y) && m > 2)
    35             gq += 1 ;
    36         if(judge(y+18) && m > 2)
    37            nw += 1 ;
    38         int re = sum - gq + nw ;
    39         printf("%d
    ", re) ;
    40     }
    41     return 0 ;
    42 }
     
  • 相关阅读:
    线性表之链式存储结构
    最大公约数:辗转相除法
    字符串系列之:逆序输出字符串
    链表有关的常见面试题
    从数组中找出最大的和最小的数
    C语言实现简单线程池
    线性表之顺序存储结构
    新学了姜葱豆腐
    渗透1
    MySQL注入中新Tips
  • 原文地址:https://www.cnblogs.com/soTired/p/4674161.html
Copyright © 2011-2022 走看看