hdu1201 18岁生日
来源:互联网 发布:网络保险和传统保险 编辑:程序博客网 时间:2024/05/01 01:48
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
C语言AC代码
#include<stdio.h>#include<string.h>int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int leapyear(int year){ if(year%400==0||year%4==0&&year%100!=0) return 1; else return 0;}int main(){ char a[15]; int Days,L,T,i,y,m,d; scanf("%d",&T); while(T--) { Days=y=m=d=i=0; scanf("%s",a); L=strlen(a); while(a[i]>='0'&&a[i]<='9') { y=y*10+a[i]-'0'; i++; } i++; while(a[i]>='0'&&a[i]<='9') { m=m*10+a[i]-'0'; i++; } i++; while(a[i]>='0'&&a[i]<='9') { d=d*10+a[i]-'0'; i++; } if(d==29&&m==2) { printf("-1\n"); continue; } if(leapyear(y)==1) month[2]=29; for(i=1;i<m;i++) Days=Days+month[i]; Days=Days+d; month[2]=28;; if(leapyear(y)==1) Days=366-Days; else Days=365-Days; for(i=1;i<18;i++) { y++; if(leapyear(y)==1) Days=Days+366; else Days=Days+365; } y++; if(leapyear(y)==1) month[2]=29; for(i=1;i<m;i++) Days=Days+month[i]; Days=Days+d; printf("%d\n",Days); month[2]=28; } return 0;}这题不用算法,只要一点耐心,请看到我博客的你,calm down , slow down ,you will AC it by yourself.
ps:qpy说要注意是2月的29号!
阅读全文
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
- 数组去重,还有输入两个带值变量的交集以及并集
- Path to Python(1)
- php://filter技术分享
- 新的博客地址
- iOS开发问题---Xcode9应用上传appStore出现报错:market icon 1024*1024尺寸错误
- hdu1201 18岁生日
- Java基础入门笔记-Hello world
- [C/C++]模板函数与模板类
- ASP.NET MVC数据验证准备
- ccf模拟题 201709-4 通信网络(缩点,dfs)
- D
- java_多态
- noip2013 车站分级 (拓扑排序)
- Vision_MATH_SG函数