1201 18岁生日
2016-03-06 20:38
204 查看
[align=left]Problem Description[/align]
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
[align=left]Input[/align]
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
[align=left]Output[/align]
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
[align=left]Sample Input[/align]
1
1988-03-07
[align=left]Sample Output[/align]
6574
View Code
一个并不困难的问题,只要归纳出:1.2月29 一定没有18岁生日。2.3月份之前要去计算闰年的时间从本年开始,3月份之后的从下年开始。
Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
[align=left]Input[/align]
一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
[align=left]Output[/align]
T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
[align=left]Sample Input[/align]
1
1988-03-07
[align=left]Sample Output[/align]
6574
#include <iostream> #include <algorithm> #include <stdio.h> #include <math.h> #include <string.h> #include <time.h> using namespace std; int main() { char a,b; int n,x,y,z,i,sum; while(cin>>n) { while(n--) { scanf("%d%c%d%c%d",&x,&a,&y,&b,&z); if(y==2&&z==29) cout<<"-1"<<endl; else { sum=0; if(y>=3) { for(i=x+1;i<=x+18;i++) if(i%4==0&&i%100!=0||i%400==0) sum++; } else { for(i=x;i<=x+17;i++) if(i%4==0&&i%100!=0||i%400==0) sum++; } cout<<sum+6570<<endl; } } } return 0; }
View Code
一个并不困难的问题,只要归纳出:1.2月29 一定没有18岁生日。2.3月份之前要去计算闰年的时间从本年开始,3月份之后的从下年开始。
相关文章推荐
- 【VS开发】recv函数函数返回值说明(特别有利于工程调试)
- NYOJ 题目860 又见01背包 (特别版01背包)
- 1045. 快速排序(25)
- (java) Kth Smallest Element in a BST
- vector容器的三种遍历方法
- 【java学习记录】spilt小结
- Linux内核分析二:一个简单的时间片轮转多道程序内核代码
- 自我介绍
- yii框架-依赖注入
- 背包
- HDU 3873 Invade the Mars dijkstra最短路
- 整理:统计学习-2 感知机知识准备(模型类型、超平面与梯度下降法)
- 对类依据成员进行排序
- 八个排序算法
- 谋哥:App排行榜的秘密
- const
- 骨骼算法,仿生中的外观
- Java [Leetcode 268]Missing Number
- 个人项目-数组求和(语言:C++)
- 基础4