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,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...
随机推荐
- ce游戏内存修改器(Cheat Engine)
ce修改器(Cheat Engine)一款专门修改内存修改编辑的游戏工具它包括16进制编辑,反汇编程序,内存查找工具新版6.1 版的CE与6.0 最大的区别就是添加了修改器制作工具,比之前 5.6.1 ...
- static 类成员变量 和 static const类成员变量
1.使用static类的优点: (1)避免与其他类的成员或者全局变量冲突 (2)可以封装 (3)阅读性好 2.static 数据成员独立于该类的任意对象而存在 static数据成员的类型可以是该成员所 ...
- 设置type为file的input标签选择图片类型
设置能选择各种类型的图片如:png,jpg <input id="file" name="file" type="file" acce ...
- Uva 129 Krypton Factor
0.这道题的输出 处理起来挺麻烦的 以后类似的可以借鉴一下 ;i<cur;i++) { && i%==) printf("\n%c",a[i]); & ...
- redis 的安装
1: redis 是什么 Redis is an open source (BSD licensed), in-memory data structure store, used as databas ...
- fzu月赛 2203 单纵大法好 二分
Accept: 8 Submit: 18Time Limit: 5000 mSec Memory Limit : 65536 KB Problem Description 人在做,天在看 ...
- WordPress用户注册无法发送密码邮件怎么回事?
wordpress无法发送电子邮件.可能原因:您的主机禁用了 mail() 函数 等等几句话.在网上一搜,很快找到了解决方案:使用wp-mail-smtp插件. 一.插件下载安装.可以在wordpre ...
- 【Oracle】在WIN NT 64位环境下安装win64_11gR2_database。并用PL/SQL连接
因为现在大多数服务器环境均为64位环境,而且有一部分使用的windows server的环境,在此做了一番小研究,如何在64位环境下安装oracle11g_64bit服务端 (1)首先www.orac ...
- 将类似 12.56MB 36.89KB 转成 以K为单位的数字【备忘】
select case RIGHT(RESOURCE_SIZE,2) when 'MB' THEN SUBSTRING_INDEX(RESOURCE_SIZE,'MB',1)*1024 ELSE SU ...
- Codeforces Round #228 (Div. 2) B. Fox and Cross
#include <iostream> #include <string> #include <vector> #include <algorithm> ...