hdu1201-18岁生日
#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岁生日的更多相关文章
- 题解报告:hdu1201(18岁生日)
2018-02-24题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1201 Problem Description Gardon的18岁生日就要到了,他 ...
- hdoj 1201 18岁生日
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 1201:18岁生日(水题,闰年)
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU 1201 18岁生日 【日期】
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu 1201 18岁生日
#include <stdio.h> int r(int y) { return (y%4==0&&y%100!=0)||(y%400==0); } int f(int y ...
- hdu120118岁生日
Problem Description Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所 ...
- JavaScript 18岁生日快乐
12月4日是JS的18岁生日,18年前这个日子JavaScript由Netscape和Sun联合宣布推出.那个星期,Ruby也将推出其第一个版本. 今天Netscape和Sun都已经不在了,但是JS还 ...
- hdoj--1201--18岁生日(模拟)
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 18岁,赚到了人生中的第一个10W!
大家好,我是九歌 今年我18岁,赚到了我人生中的第一个10W 截至2019年10月14日,我已经做了43天的公众号啦,粉丝也悄然增长到了1W8,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...
随机推荐
- ASP.Net MVC开发基础学习笔记(2):HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
- AOP静态代理解析1-标签解析
AOP静态代理使用示例见Spring的LoadTimeWeaver(代码织入) Instrumentation使用示例见java.lang.instrument使用 AOP的静态代理主要是在虚拟机启动 ...
- 分享Kali Linux 2016.2第47周虚拟机
分享Kali Linux 2016.2第47周虚拟机该虚拟机使用Kali Linux 2016.2第47周的64位镜像安装而成.基本设置如下:(1)该系统默认设置单CPU双核,内存为2GB,硬盘为50 ...
- Golang 安装及配置教程 for Mac
1.到golang.org下载golang 并安装. 2.安装sublimetext ,打开之后 按ctrl+` 打开命令行,输入以下内容: import urllib2,os; pf='Packag ...
- 每天一个linux命令---导出到文件
导出Linux下的部分日志到文件,使用‘>’符号 例如: [calendar@test190 logs]$ monitor.log|grep getCalendarView > share ...
- 使用expdp时遇到ORA-39002、ORA-39070错误
使用expdp时,遇到”ORA-39002.ORA-39070......”连续报错. 1. 遇到的问题 expdp yguo/dbimp@botnet schemas=yguo dumpfile= ...
- ural 2073. Log Files
2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...
- Android系统中的6种模式
Android系统中的6种模式 1:一般启动模式(normal mode): 功能是正常启动手机,方法为关机状态下按电源键启动. 2:安全模式(safe mode): 此模式和正常启动一样 ...
- Java集合框架学习总结
转自:http://www.cnblogs.com/oubo/archive/2012/01/07/2394639.html Oubo的博客 以下介绍经常使用的集合类,这里不介绍集合类的使用方法,只介 ...
- 21045308刘昊阳 《Java程序设计》第十周学习总结
21045308刘昊阳 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. 狭义的网络编程范畴:程序员所作的事情 ...