题目

标题:日期问题

小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。

比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。

给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?

输入

一个日期,格式是"AA/BB/CC"。 (0 <= A, B, C <= 9)

输入

输出若干个不相同的日期,每个日期一行,格式是"yyyy-MM-dd"。多个日期按从早到晚排列。

样例输入

02/03/04

样例输出

2002-03-04
2004-02-03
2004-03-02

资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

注意:
main函数需要返回0;
只使用ANSI C/ANSI C++ 标准;
不要调用依赖于编译环境或操作系统的特殊函数。
所有依赖的函数必须明确地在源文件中 #include
不能通过工程设置而省略常用头文件。

提交程序时,注意选择所期望的语言类型和编译器类型。

Ideas

对于输入日期:AA/BB/CC,肯定要先按照/切分成三个数:AA、BB、CC。

然后就是判断这三个数能不能放在年、月、日这三个位置上。

本来就只有三个数,可能存在的情况就是AA-BB-CC、CC-AA-BB、CC-BB-AA,然后我们专门写个check()函数检查日期是否合法就OK了。

那么对于check()函数,相当于给定三个数字,判断这三个位置上的数字是否在相应的范围内。

  1. 因为这些日期都在1960年1月1日至2059年12月31日,所以第1个元素如果>59,那就是19xx,如果<60,那就是20xx;
  2. 第2个位置上的数字要在1~12之间;
  3. 第3个位置上的数字要根据第2个位置上表示月份的数字来确定范围,而对于二月还要判断是不是闰年,所以还需要一个函数判断是不是闰年。

基本上就是这么一个流程,接下来就可以写代码了。

Code

Python

def check(date):def is_leap_year(y):return (y % 4 == 0 and y % 100 != 0) or y % 400 == 0year = 1900 + date[0] if date[0] > 59 else 2000 + date[0]days = [31, 29 if is_leap_year(year) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]if 0 < date[1] < 13:if 0 < date[2] < days[date[1] - 1] + 1:return f"{year}-{str(date[1]).zfill(2)}-{str(date[2]).zfill(2)}"if __name__ == '__main__':aa, bb, cc = map(int, input().split('/'))ans = set()if check((aa, bb, cc)):ans.add(check((aa, bb, cc)))if check((cc, aa, bb)):ans.add(check((cc, aa, bb)))if check((cc, bb, aa)):ans.add(check((cc, bb, aa)))ans = list(ans)ans.sort()print("\n".join(ans))

2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - G. 日期问题相关推荐

  1. 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - B. 矩形切割

    题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67815 Ideas 对于一个矩形来说,能切割下来的正方形肯定是以较短的那条边为边长,然后 ...

  2. 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数

    Ideas 本来一开始想到的是质数筛,但是埃式筛是用来筛选 n 以内的所有质数,并不能找到第 n 个质数,除非找到一个足够大的 n 能够把第 2019 个质数包含进去. 可能质数筛还有升级,能够用来找 ...

  3. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - B. 年号字串

    [问题描述] 小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26. 对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,AZ 对应 ...

  4. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - D. 数的分解

    [问题描述] 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1 ...

  5. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - I. 后缀表达式

    题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67814 Ideas 简单回顾一下前缀.中缀.后缀表达式 前缀表达式:前缀表达式的运算符位 ...

  6. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - C. 数列求值

    [问题描述] 给定数列 1, 1, 1, 3, 5, 9, 17, -,从第 4 项开始,每项都是前 3 项的和. 求第 20190324 项的最后 4 位数字. [答案提交] 这是一道结果填空的题, ...

  7. 2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - F. 旋转

    Ideas 有点类似于线性代数的矩阵转置,不过这个是顺时针转90°,转置相当于是逆时针转90°. 但其实原理是一样的,矩阵转置是第一行变为第一列,第二行变为第二列-- 顺时针转90°其实就是第一行变为 ...

  8. 2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - D. 迷宫

    maze.txt文件内容如下: 01010101001011001001010110010110100100001000101010 000010001000001010100100001000000 ...

  9. 2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - A. 平方和

    Ideas 迭代+Check. Code C++ #include <iostream> using namespace std;bool check(int num) {while (n ...

最新文章

  1. python常见的特异点
  2. VC++保存绘制的图形-1
  3. ios Swift 中文学习手册
  4. TIME_WAIT状态的一些总结
  5. datatable.js 服务端分页+fixColumns列固定
  6. Knockout.Js案例一Introduction
  7. c++ 项目_罗纳尔多相信C罗从事技巧类项目,其成就不会亚于他在足坛的成绩
  8. wamp安装和配置_手动配置Wordpress环境真香,让我毫不犹豫卸载LAMP和WAMP环境
  9. 中国树桩粉碎机市场趋势报告、技术动态创新及市场预测
  10. 苹果修复 Gatekeeper 绕过漏洞
  11. CodeForces 650A Watchmen
  12. python根据url链接下载文件
  13. Unity编辑器汉化教程
  14. Linux安装cURL
  15. 破解完全入门篇 第七章-寻找软件的注册码
  16. html datetime控件 到时分秒,日期控件:datepicker(bootstrap)支持时分秒
  17. [教程]教你如何制作彩色的3D打印Groot
  18. 赵小楼《天道》《遥远的救世主》深度解析(65)实事求是的辩证思维(应试教育学不到的思维)
  19. 关于@ComponentScan 的使用 和springboot启动类所在位置的关系
  20. 期货资管分仓软件——期货子账户软件的构成架构以及实现的功能

热门文章

  1. [bzoj4034]树上操作
  2. Spring中@Resource与@Autowired、@Qualifier的用法与区别
  3. [Done]Spring @Pointcut 切点调用不到(SpringAOP嵌套方法不起作用) 注意事项
  4. LinuxUNIX系统编程手册(英文版)pdf
  5. 4028: [HEOI2015]公约数数列
  6. 关于FPGA的一些你必须知道的概念
  7. 怎么在MyEclipse中快速配置spring框架-非web项目
  8. IplImage类型解释和举例
  9. css应用网页设计,CSS技术在网页设计中的运用
  10. linux动态路由rip配置,配置 动态路由协议OSPF和RIPv2实现全网互通^