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
 
 #include <stdio.h>

 int judge(int x)
{
if(x % == || x % == && x % != )
return ;
else
return ;
} int main()
{
int md[] = {, , , , , , , , , , , , };
int yd[] = {, };
int year, month, day, sum, n, i;
char s[];
scanf("%d", &n);
while(n--){ md[] = ;//忘记对md[2]初始化了
scanf("%s", s);
year = (s[] - '') * + (s[] - '') * + (s[] - '') * + s[] - '';
if(s[]-'' != )
{
month = (s[] - '')* + s[] - '';
}
else
{
month = s[] - '';
}
if(s[]-'' != )
{
day = (s[] - '')* + s[] - '';
}
else
{
day = s[] - '';
}
//if(month == 2 && day == 29 && !judge(year + 18))//18年之后肯定不会有18岁,额,常识
if(month == && day == )
{
printf("-1\n");
continue;
}
// if(month == 2 && day == 28 && judge(year+18))
// sum+=1;
if(judge(year))/*判断出生日期是平或闰*/
{
md[] = ;
}
sum = ;
/*计算本年度剩余天数*/
sum += md[month] - day;
for(i = month + ; i <= ; i++){ sum += md[i]; }
/*计算中间天数*/
for(i = year + ; i <= year + ; i++){ sum += yd[judge(i)]; }
/*计算18岁那年过的天数*/
if(!judge(i))
md[] = ;
else
{
md[] = ;
}
for(i = ; i <= month - ; i++){ sum += md[i]; }
sum += day;
/*输出*/
printf("%d\n", sum);
}
return ;
}

以下是简化的,只考虑每一年的天数,这样就不再计算出生年剩于天数和18年后的天数,因为,他们拼凑起来恰好是一年,接下来只需对特殊情况判断即可。

 #include<stdio.h>
#include<stdlib.h> int nian(int a)
{
if(a%==&&a%!=||a%==)
return ;
return ;
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{ int sum=,i,x,y,z;
scanf("%d-%d-%d" ,&x,&y,&z);//这里忽略前面那个0
if(!(!nian(x)||y!=||z!=))
printf("-1\n");
else
{ for(i=x+;i<=x+;i++)
{
if(nian(i))
sum+=;
else
sum+=;
}
if(nian(x)&&y<=)
sum+=;
if(nian(x+)&&y<=)
sum-=;
printf("%d\n",sum);
}
}
return ;
}

hdu1201-18岁生日的更多相关文章

  1. 题解报告:hdu1201(18岁生日)

    2018-02-24题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1201 Problem Description Gardon的18岁生日就要到了,他 ...

  2. hdoj 1201 18岁生日

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

  3. hdu 1201:18岁生日(水题,闰年)

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

  4. HDU 1201 18岁生日 【日期】

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

  5. hdu 1201 18岁生日

    #include <stdio.h> int r(int y) { return (y%4==0&&y%100!=0)||(y%400==0); } int f(int y ...

  6. hdu120118岁生日

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

  7. JavaScript 18岁生日快乐

    12月4日是JS的18岁生日,18年前这个日子JavaScript由Netscape和Sun联合宣布推出.那个星期,Ruby也将推出其第一个版本. 今天Netscape和Sun都已经不在了,但是JS还 ...

  8. hdoj--1201--18岁生日(模拟)

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

  9. 18岁,赚到了人生中的第一个10W!

    大家好,我是九歌 今年我18岁,赚到了我人生中的第一个10W 截至2019年10月14日,我已经做了43天的公众号啦,粉丝也悄然增长到了1W8,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...

随机推荐

  1. C#获取IP地址

    public string GetUserIP()   {        string _userIP;       if(Request.ServerVariables["HTTP_VIA ...

  2. 关于__IPHONE_OS_VERSION_MAX_ALLOWED和__IPHONE_OS_VERSION_MIN_ALLOWED的用法

    简单来说, 这些编译期常量, 对运行时的环境判断完全无效, 它告诉编译器用哪一段代码来进行编译, 那那段代码里, 你仍然可以写运行到目标机器里会崩溃的代码, 从stackoverflow里拷两段示例代 ...

  3. Code Rush插件

    code rush 是微软推出的一款VS2008上的插件.他有强大的文件和代码导航功能,易于访问的重构和代码创建功能.一组编辑器.选择.剪贴板工具等. 教程链接 http://www.devexpre ...

  4. "Accepted today?"[HDU1177]

    "Accepted today?" Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  5. unity 解析xml

    using UnityEngine; using System.Collections; using System.IO; using System.Xml; public class xml : M ...

  6. Jaxb 解析 带有继承关系的bean与xml

    具体方法: 1. 在jaxb的setClasstobebounds中,只需要子类的class,无需父类. 2. 父类的前面加如下声明: @XmlAccessorType(XmlAccessType.F ...

  7. Android GPS 取经纬度

    // 获取位置管理服务 private LocationManager locationManager;3 String mProviderName = ""; private v ...

  8. [知识点]SPFA算法

    // 此博文为迁移而来,写于2015年4月9日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vx93.html 1.前言 ...

  9. BZOJ 1083 题解

    1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2431  Solved: 1596[Submit][Sta ...

  10. 【异常】java.lang.LinkageError: loader constraints violated

    [问题背景]      南非客户帐单提醒功能过程中的一个问题,当启动服务器后,后台报java.lang.LinkageError: loader constraints violated when l ...