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. ce游戏内存修改器(Cheat Engine)

    ce修改器(Cheat Engine)一款专门修改内存修改编辑的游戏工具它包括16进制编辑,反汇编程序,内存查找工具新版6.1 版的CE与6.0 最大的区别就是添加了修改器制作工具,比之前 5.6.1 ...

  2. static 类成员变量 和 static const类成员变量

    1.使用static类的优点: (1)避免与其他类的成员或者全局变量冲突 (2)可以封装 (3)阅读性好 2.static 数据成员独立于该类的任意对象而存在 static数据成员的类型可以是该成员所 ...

  3. 设置type为file的input标签选择图片类型

    设置能选择各种类型的图片如:png,jpg <input id="file" name="file" type="file" acce ...

  4. Uva 129 Krypton Factor

    0.这道题的输出 处理起来挺麻烦的 以后类似的可以借鉴一下 ;i<cur;i++) { && i%==) printf("\n%c",a[i]); & ...

  5. redis 的安装

    1: redis 是什么 Redis is an open source (BSD licensed), in-memory data structure store, used as databas ...

  6. fzu月赛 2203 单纵大法好 二分

    Accept: 8    Submit: 18Time Limit: 5000 mSec    Memory Limit : 65536 KB  Problem Description 人在做,天在看 ...

  7. WordPress用户注册无法发送密码邮件怎么回事?

    wordpress无法发送电子邮件.可能原因:您的主机禁用了 mail() 函数 等等几句话.在网上一搜,很快找到了解决方案:使用wp-mail-smtp插件. 一.插件下载安装.可以在wordpre ...

  8. 【Oracle】在WIN NT 64位环境下安装win64_11gR2_database。并用PL/SQL连接

    因为现在大多数服务器环境均为64位环境,而且有一部分使用的windows server的环境,在此做了一番小研究,如何在64位环境下安装oracle11g_64bit服务端 (1)首先www.orac ...

  9. 将类似 12.56MB 36.89KB 转成 以K为单位的数字【备忘】

    select case RIGHT(RESOURCE_SIZE,2) when 'MB' THEN SUBSTRING_INDEX(RESOURCE_SIZE,'MB',1)*1024 ELSE SU ...

  10. Codeforces Round #228 (Div. 2) B. Fox and Cross

    #include <iostream> #include <string> #include <vector> #include <algorithm> ...