hdu1201 18岁生日
来源:互联网 发布:网络借贷超市 编辑:程序博客网 时间:2024/04/30 16:47
问题 D: 18岁生日
时间限制: 1 Sec 内存限制: 32 MB提交: 24 解决: 10
[提交][状态][讨论版]
题目描述
zzq的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
输入
输入的第一行是一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
输出
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
样例输入
11988-03-07
样例输出
6574
题意概括:
给一个人的出生日期,算出他18岁生日那天是他出生的多少天?
解题思路:
把这18年分成三部分,第一部分是他出生那天距该年过完还有多少天,第二部分是中间十七年总共多少天,第三部分是他18岁生日那天是该年的第几天,把这三部分相加就是18岁生日那天是他出生的多少天。
代码:
#include<stdio.h>int Isleap(int y);int Getyearday(int y,int m,int d);int main(){ intn,y,m,d,i,j,k,sum,sum1,sum2,c,f; scanf("%d",&n); while(n--) { scanf("%04d-%02d-%02d",&y,&m,&d); c=0; f=0; if(Isleap(y)==1&&m==2&&d==29) { f=1; } if(f==1&&Isleap(y+18)==0) { printf("-1\n"); continue; } sum1=0; for(i=y+1;i<=y+17;i++) { c++; if(Isleap(i)==1) { sum1+=366; } if(Isleap(i)==0) { sum1+=365; } } //printf("c=%d",c); //printf("sum1==%d\n",sum1); sum2=0; sum2=Getyearday(y+18,m,d); //printf("%d\n",Isleap(y)); sum=Getyearday(y,m,d); if(Isleap(y)==1) { sum=366-sum; } else { sum=365-sum; } //printf("sum,sum2%d %d\n",sum,sum2); printf("%d\n",sum+sum1+sum2); } return0;}int Getyearday(int y,int m,int d){ intk,leap,s; inttab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}}; leap=Isleap(y); s=0; for(k=1;k<m;k++) { d=d+tab[leap][k]; } returnd; }int Isleap(int y){ if((y%400==0)||(y%4==0&&y%100!=0)) return1; return0;}
错误分析:
1.第二部分本来应该是17年,但一开始把他当成16年,因为是18岁生日,开始和最后都是半年左右不是一整年。
2.忘记了18岁生日不存在的情况。
阅读全文
0 0
- hdu1201 18岁生日
- HDU1201:18岁生日
- HDU1201 18岁生日
- hdu1201 18岁生日
- hdu1201-18岁生日
- hdu1201--18岁生日
- HDU1201 18岁生日
- hdu1201 18岁生日
- HDU1201-18岁生日
- hdu1201 18岁生日
- HDU1201 18岁的生日
- 杭电ACM--HDU1201--18岁生日
- HDU1201 18岁生日【日期计算】
- hdu1201 18岁生日(java版本)
- hdu1201十八岁生日
- ACM-简单题之18岁生日——hdu1201
- HDU1201求出生到18岁生日总天数
- hdu1201
- 实现自定义音量盘
- bzoj 1012: [JSOI2008]最大数maxnumber(树状数组)
- Mysql数据库远程连接10038报错问题原因及解决方案
- React webpack配置文件暴露
- 达内课程-面向对象之多态
- hdu1201 18岁生日
- PHP哈希弱类型比较缺陷
- 文章标题
- WA
- 程序的内存分配到几个部分?
- 常量指针和指针常量【小记】
- Linux_入门之文件归档,压缩及远程文件传输
- mybatis增删改查
- php学习——css复习六(格式清除和布局方法)