原题链接:HDU1201

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

解题思路:
题目大意:输入一个人出生日期,如果他(她)有18岁的生日,就输出此人从出生到18岁生日所经过的天数。如果他(她)没有18岁的生日就输出“-1”。
思路:先将极为争论的一年的天数加起来,剩余17年判断是不是闰年进行天数的增加。如果是闰年的话,肯定会有18岁生日。如果不是闰年的话,只要他(她)的生日不是2月29日,就会有18岁的生日。

AC代码:

#include<stdio.h>
#include<stdlib.h>
int main(){int n;while(~scanf("%d",&n)){      while(n--){int num[3],sum=0;scanf("%d-%d-%d",&num[0],&num[1],&num[2]);if(num[1]>=3){         if((num[0]+18)%400==0||((num[0]+18)%4==0&&(num[0]+18)%100!=0))sum+=366;else sum+=365;}else{if(num[0]%400==0||(num[0]%4==0&&num[0]%100!=0))sum+=366;else sum+=365;}for(int i=0;i<17;i++){num[0]++;if(num[0]%400==0||(num[0]%4==0&&num[0]%100!=0))sum+=366;else sum+=365;                   }num[0]++;            if(num[0]%400==0||(num[0]%4==0&&num[0]%100!=0))printf("%d\n",sum);else if(num[1]==2&&num[2]==29)printf("-1\n");    else printf("%d\n",sum);      }}return 0;
}

样例1
2
1988-2-29
-1
1987-02-11
6575
样例2
2
1999-03-26
6575
2000-04-16
6574
样例3
3
1564-04-29
6574
1956-02-28
6575
1856-03-12
6574
样例4
3
1865-01-15
6574
1985-02-23
6574
1952-06-16
6574
样例5
2
1955-05-28
6575
1222-03-07
6575

HDU1201(题解)18岁生日相关推荐

  1. HDU-1201,18岁生日

    Problem Description: Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样, ...

  2. HDU1201 18岁生日【日期计算】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  3. HDU1201 18岁生日【日期计算+水题】

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. hdu1201 18岁生日(java版本)

    每日一看 18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  5. HDU1201求出生到18岁生日总天数

    18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. 18岁生日 HDU - 1201

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

  7. 计算到达18岁生日所经过的总天数

    Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...

  8. 暑假集训day6——E - 18岁生日(20)

    E - 18岁生日(20) Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮 ...

  9. HD1201 18岁生日

    18岁生日                                     Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65 ...

最新文章

  1. 巴菲特在佛罗里达大学的演讲
  2. c++调用dll动态链接库历程
  3. 2020-12-19通信电子线路第一章
  4. mac 通过 homebrew 安装mongodb
  5. Docker 集群环境实现的新方式
  6. android4.4.2 以太网代理,Android2.3.4系统添加Ethernet框架支持
  7. 会计教学APP软件,实现教学的快速运转
  8. 【操作系统】实时调度
  9. android反编译干嘛,安卓反编译流程大解析 看完你就懂了!
  10. Win7 无法安装 VMware Tools
  11. 这篇文章里的代码的C#版本 (穿过已知点画平滑曲线(3次贝塞尔曲线)
  12. TF卡座的工作原理,TF卡座的内部结构,详图,自弹式TF卡座的内部结构原来是这么回事
  13. 计算机主机的三大部分,计算机系统的三大组成部分
  14. 牛客寒假训练营1 K 冒险公社(线性dp)
  15. 俞敏洪+马云+牛根生+史玉柱经典语录
  16. 德赛西威全球首发“Smart Solution”智能出行解决方案
  17. Facebook语音识别野心曝光,测试Aloha,挑战苹果Siri
  18. QT随机放1个1和七个2_才知道,1个橙子放2个鸡蛋,只要拌一拌,出锅孩子吃了提高免疫力|橙子|鸡蛋|蒸蛋|食盐|白糖...
  19. 【Android开发】用户界面布局
  20. 【Re-ID】现有方法调研 - 无监督/半监督方法 - 其他方法

热门文章

  1. 《Python数据分析与挖掘实战》第12章(中)——协同推荐
  2. 2021-08-05 JavaScript
  3. android vlayout 阿里,带你学习阿里巴巴的开源库VLayout
  4. 网上询找客户七种方法
  5. some collected dl tips
  6. 使用Dialogflow API构建Slack智能聊天机器人的指南
  7. 计算机网络(十七)——MAC地址与ARP协议
  8. OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)
  9. 凸透镜(普通的相机)概念模型及参数详解
  10. 别高估红包,场景才是移动支付根本