题目描述

Baidu 的服务器上使用的不是北京时间,而是 Baidu 时间。 Baidu 时间的时分秒与北京时间相同,但是日期与北京时间不同,是用一个正整数表示从 2000 年 1 月 1 日 起的第几天。

现在就请大家设计一个程序将北京时间转换为百度时间。

输入格式

输入数据的每一行为一个待转化的北京时间,格式包括两种:

一种为: YYYY-MM-DD ,( YYYY 表示四位数年份, MM 为两位月份, DD 为两位日期);

另一种为: MM/DD/YYYY ,( YYYY 表示四位数年份, MM 为两位月份, DD 为两位日期);

不符合任何一种格式的输入视为非法输入。

输出格式

每个数据输出一行。如果格式正确,输出一个正整数,否则输出 Error 。

输入样例

2006-03-21

AStar2007

04/22/2007

输出样例

2149

Error

2463

my answer:

明明 是很简单的一道题,搞不懂它的输出样例是怎么算出来的

#include <iostream>
using namespace std;char ch[11];
int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool IsRun(int x);
int main()
{while(cin>>ch){int time[3] = {0}, j = 0, cnt = 0, i;while(ch[j] != '\0' && cnt < 3){if(ch[j] >= '0' && ch[j] <= '9'){time[cnt] = time[cnt] * 10 + ch[j] - '0';}else cnt++;j++;}int year, month, day;if(ch[2] == '/'){month = time[0];day = time[1];year = time[2];}else{year = time[0];month = time[1];day = time[2];}if(year < 2000 || year > 9999 || month <= 0 || month > 12 ||day <= 0 || day > 31){cout<<"Error"<<endl;continue;}int ret = 0;for(i = 2000; i < year; i++){ret = ret + 365;if(IsRun(i))ret++;}for(i = 1; i < month; i++){ret = ret + m[i];if(IsRun(year))ret++;}if(IsRun(year) && month == 2 && day <= 29)ret = ret + day;else if((!IsRun(year) || month != 2) && day <= m[month])ret = ret + day;else{cout<<"Error"<<endl;continue;}ret--;cout<<ret<<endl;}return 0;
}bool IsRun(int year)
{if(year % 4)return 0;if(year % 100)return 1;if(year % 400)return 0;return 1;
}

2007年百度之星程序设计大赛试题初赛题目-题4-百度时间相关推荐

  1. 2007年百度之星程序设计大赛试题初赛题目-题3-实习生小胖的百度网页过滤器

    题目描述 百度网页采集器 (Baiduspider) 每天从互联网收录数亿网页,互联网的网页质量参差不齐.百度的工程师们每天都在改进方法来判断一个网页质量的好坏,使质量差的网页出现在检索结果中较后的位 ...

  2. AStar2006百度之星程序设计大赛试题

    1.百度语言翻译机 百度的工程师们是非常注重效率的,在长期的开发与测试过程中,他们逐渐创造了一套独特的缩略语.他们在平时的交谈.会议,甚至在各种技术文档中都会大量运用. 为了让新员工可以更快地适应百度 ...

  3. 2006年百度之星程序设计大赛复赛第4题 彩球游戏(zuma) 题目及解法

    修改源代码,增加注释. /* * common.h * * Created on: 2010-2-6 * Author: edan.deng */ #ifndef COMMON_H_ #define ...

  4. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))

    Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  5. hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))

    p1m2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  6. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))

    degree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

  7. hdu6375(2018 “百度之星”程序设计大赛 - 初赛(A))

    度度熊学队列 Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

  8. 2018百度之星程序设计大赛 - 资格赛 hdu6345(找区间最小值)

    子串查询 Time Limit: 3500/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Sub ...

  9. 2017百度之星程序设计大赛 - 复赛 01,03,05

    Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

最新文章

  1. File类 读取文件
  2. 什么是IDOC,以及IDOC的步骤
  3. boost::histogram::axis::transform用法的测试程序
  4. log4j2 无垃圾模式
  5. Druid配置文件demo
  6. 网站开发用什么语言好_网站开发教程:企业如何用网站开启在线业务?
  7. 系统程序员成长计划-走近专业程序员
  8. sqlserver递归
  9. 移动开发痛点之一-接口验证之PostMan图文教程
  10. python写机器人程序_从Python写入机器人框架控制台
  11. 自定义View(一)-ViewGroup实现优酷菜单
  12. HDU - 1247 (字典树水题)
  13. android10解决NetworkInfo废弃替代NetworkInfo isConnected()问题
  14. Python程序设计经典题库及答案
  15. Oracle数据库锁表查询与解锁处理详解
  16. 已解决-Windows10没有windows照片查看器-Windows10打开照片是黑底的
  17. mysql重装系统后以前的数据_重装系统后 如何使用之前mysql数据
  18. Pareto最优解 Pareto分布
  19. 安卓手机管理器_Kindle 传书最简单的方式:安卓/苹果手机都可以一键传书至Kindle!...
  20. android 如何绕过签名校验

热门文章

  1. latex并排插入两幅图像
  2. N7100/GALAXY Note2 解决短信发件人实际发送短信时间
  3. 【HCIP】数据链路层封装技术、GRE及实验(eNSP)
  4. keygen_new2032 破解软件在win11上无法运行怎么办?
  5. 红米k40s root玩机笔记
  6. 带状态转换图的词法分析器
  7. 活动推荐 | 阿里、百度、华为的技术专家为啥都来这儿搞事
  8. qt绘画扇形drawPie()和反着三角函数qAcos()
  9. C语言的加减乘除及常量和变量
  10. 每次产生不一样的随机数方法