HDU1201(题解)18岁生日
原题链接: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岁生日相关推荐
- HDU-1201,18岁生日
Problem Description: Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样, ...
- HDU1201 18岁生日【日期计算】
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- HDU1201 18岁生日【日期计算+水题】
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu1201 18岁生日(java版本)
每日一看 18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- HDU1201求出生到18岁生日总天数
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- 18岁生日 HDU - 1201
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从 ...
- 计算到达18岁生日所经过的总天数
Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...
- 暑假集训day6——E - 18岁生日(20)
E - 18岁生日(20) Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮 ...
- HD1201 18岁生日
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
最新文章
- 巴菲特在佛罗里达大学的演讲
- c++调用dll动态链接库历程
- 2020-12-19通信电子线路第一章
- mac 通过 homebrew 安装mongodb
- Docker 集群环境实现的新方式
- android4.4.2 以太网代理,Android2.3.4系统添加Ethernet框架支持
- 会计教学APP软件,实现教学的快速运转
- 【操作系统】实时调度
- android反编译干嘛,安卓反编译流程大解析 看完你就懂了!
- Win7 无法安装 VMware Tools
- 这篇文章里的代码的C#版本 (穿过已知点画平滑曲线(3次贝塞尔曲线)
- TF卡座的工作原理,TF卡座的内部结构,详图,自弹式TF卡座的内部结构原来是这么回事
- 计算机主机的三大部分,计算机系统的三大组成部分
- 牛客寒假训练营1 K 冒险公社(线性dp)
- 俞敏洪+马云+牛根生+史玉柱经典语录
- 德赛西威全球首发“Smart Solution”智能出行解决方案
- Facebook语音识别野心曝光,测试Aloha,挑战苹果Siri
- QT随机放1个1和七个2_才知道,1个橙子放2个鸡蛋,只要拌一拌,出锅孩子吃了提高免疫力|橙子|鸡蛋|蒸蛋|食盐|白糖...
- 【Android开发】用户界面布局
- 【Re-ID】现有方法调研 - 无监督/半监督方法 - 其他方法
热门文章
- 《Python数据分析与挖掘实战》第12章(中)——协同推荐
- 2021-08-05 JavaScript
- android vlayout 阿里,带你学习阿里巴巴的开源库VLayout
- 网上询找客户七种方法
- some collected dl tips
- 使用Dialogflow API构建Slack智能聊天机器人的指南
- 计算机网络(十七)——MAC地址与ARP协议
- OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)
- 凸透镜(普通的相机)概念模型及参数详解
- 别高估红包,场景才是移动支付根本