杭电OJ1201-18岁生日
2016-07-26 13:48
302 查看
Problem Description
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
代码写的烂!又被易老师嘲讽了
我的代码:
这道题很坑,很坑……
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
代码写的烂!又被易老师嘲讽了
我的代码:
<pre style="font-family: 'Courier New';"><pre name="code" class="cpp"><pre name="code" class="cpp">#include <iostream> #include <stdio.h> using namespace std; int IsLeapYear(int y) { if((y%4==0 && y%100!=0) || y%400==0) return 1; return 0; } int main() { int year[2][1]={365,366}; int month[2][12]={0,31,59,90,120,151,181,214,243,273,304,334, 0,31,60,91,121,152,182,215,244,274,305,335}; int t,sum,i,y,m,d; cin>>t; while(t--) { sum=0; scanf("%d-%d-%d",&y,&m,&d); if(IsLeapYear(y) && m==2 & d==29) cout<<"-1"<<endl; sum+=month[IsLeapYear(y)][m-1]; sum+=d; sum=year[IsLeapYear(y)][0]-sum; for(i=y+1;i<=y+17;i++) sum+=year[IsLeapYear(i)][0]; sum+=month[IsLeapYear(y+18)][m-1]; sum+=d; cout<<sum<<endl; } return 0; }
这道题很坑,很坑……
相关文章推荐
- 西安喜报!黑马程序员“潜力股学科“前端开发入驻
- C#中多个label调用同一单击事件,怎么分辨是通过哪个label调用的
- Java内存模型
- session会话过期设置
- mark
- react native下fetch ios9报network request failed的问题
- WM_TIMER
- daimachuan
- 采集温度和时间网络上报
- 三魂七魄,看看哪个已不在您身上?
- C# 类
- 死磕闲置交易的猎趣、闲鱼、转转们,拯救“剁手党”还差哪味猛药?
- Scalaz(51)- scalaz-stream: 资源使用安全-Resource Safety
- MEF学习
- 想做自动化测试需要深入的几点建议
- 无法添加 WebEx 扩展插件。请重试。
- SNMP常用OID查询
- 教你怎么引入百度地图
- Scala(50)- scalaz-stream: 资源使用安全-Resource Safety
- SEO 相关知识