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. Liferay 6.2 改造系列之四:重新整理Application添加页面默认提供的Portlet清单

    经过2.3两步后,剩余Portlet已经不多,添加Application页面如下: 将用不到的Portlet隐藏起来:11   Portal目录 (Portal Directory) 将内嵌Protl ...

  2. (转)set集合的用法

    原地址:http://blog.csdn.net/chaiwenjun000/article/details/50561775 SET 集合 百度百科中说集合中的元素有三个特征: 1.确定性(集合中的 ...

  3. css整理-05 边框,背景和浮动,定位

    边框 样式:border-style hidden, dotted, dashed, solid , double, groove, ridge, inset, outset 最不可预测的是doubl ...

  4. 快销品 车销批发管理手持终端PDA系统 打印开单 入库 库存 盘点多功能一体

    手持POS终端PDA移动开单 PDA通过扫描商品条码移动开单,实现便携式办公,伴随式销售,浩瀚技术研发团队开发的一款最新产品,PDA能通过WIFI无线局域网.GPRS互联网直接与主机连接,让公司业务人 ...

  5. 20145223《Java程序程序设计》第3周学习总结

    20145223 <Java程序设计>第3周学习总结 教材学习内容总结 第四章内容 1.类与对象 如何定义一个包含有几个值域(Field成员)就是需要我们定义一个类(Class),书上给的 ...

  6. 循环遍历泛型集合List绑定到table

    <%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false&quo ...

  7. linux read简单用法

    #!/bin/bash #read chars into var read -n var echo $var #read chars without showing it read -s var ec ...

  8. [笔记] Duke - 统计预测

    Duke大学富卡商学院(Fuqua school of business)的高级选修课. 全名:Statistical forecasting: notes on regression and tim ...

  9. Squid的简单使用

    1. squid配置 # Squid normally listens to port http_port hosts_file /etc/hosts cache_access_log /var/lo ...

  10. Oracle存储过程中临时表的使用技巧

    一.Oracle临时表知识 在Oracle中,临时表分为SESSION(会话级).TRANSACTION(事务级)两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSIO ...