【杭电oj】1201 - 18岁生日(水)
来源:互联网 发布:linux python 编辑:程序博客网 时间:2024/05/08 10:53
18岁生日
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25688 Accepted Submission(s): 8148
Problem Description
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
Input
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
Output
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
Sample Input
11988-03-07
Sample Output
6574
Author
Gardon
Source
Gardon-DYGG Contest 2
蓝鸟吐槽:你没事过什么18岁生日啊!(她闰年判断那一步算错,致哀。。。)
这道题我用了最普通的循环18次来计算,麻烦是麻烦了一点,但是准确率还是有的,但是如果不是18年,这种算法就需要改进了。
代码如下:
#include <stdio.h>int check(int n)//判断是否为闰年,1为是 {if (n%400==0 || (n%4==0 && n%100!=0))return 1;return 0;}int main(){int u;scanf ("%d",&u);int y,m,d;int ans;int t;while (u--){scanf ("%d-%d-%d",&y,&m,&d);if (m==2 && d==29 && check(y+18)==0){printf ("-1\n");continue;}ans=0;if ((m==2 && d<=28) || m==1){for (int i=0;i<18;i++){t=y+i;ans=ans+365+check(t);}}else{for (int i=1;i<=18;i++){t=y+i;ans=ans+365+check(t);}}printf ("%d\n",ans);}return 0;}
0 0
- 【杭电oj】1201 - 18岁生日(水)
- 【杭电-oj】-1201-18岁生日
- 杭电 OJ 1201 18岁生日
- 18岁生日(杭电1201)
- 杭电ACM 1201 18岁生日
- 杭电1201 18岁生日
- 杭电 HDU 1201 18岁生日
- 杭电1201 18岁生日
- 杭电 1201 18岁生日
- 杭电1201 18岁生日
- 杭电1201 18岁生日
- 【杭电】[1201]18岁生日
- 杭电1201之18岁生日
- 杭电 1201 18岁生日
- 【杭电1201】18岁生日
- 【杭电1201】18岁生日
- 杭电acm----1201 18岁生日
- 杭电ACM 1201 18岁生日
- 【杭电oj】1994 - 利息计算(水)
- 2016中国员工工资涨幅全球最高,菜鸟在线想知道你怎么看?
- 盘点机器学习领域的五大流派
- 服务器返回数据为nil,null问题处理
- Java多态实现原理
- 【杭电oj】1201 - 18岁生日(水)
- 大数据IMF传奇行动 scala IDE 本地local开发wordcount 无法加载主类问题解决
- fragment生命周期 fragment与activity通信
- HTTP返回码中301与302的区别
- java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
- C#源代码—猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多 吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。
- NSURLConnection 的使用
- 怎么做好互联网产品运营?
- 实现QT与HTML页面通信