蓝桥杯 - 历届试题 - 日期问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33531813/article/details/79516258 </div><div id="content_views" class="markdown_views"><!-- flowchart 箭头图标 勿删 --><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><h2 id="蓝桥杯历届试题日期问题">蓝桥杯历届试题——日期问题</h2>
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;//判断 year 是否是闰年
//默认 year已经是大于零的数
bool isLeapYear(int year)
{if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return true; return false;
}//对传来的3个参数是否能构成一个日期 yy-mm-dd
//规定:
// yy∈[00,59] yy = 20yy
// yy∈[60,99] yy = 19yy
// 即yy无需判断,默认合法,但某种情况下需要判断yy是闰年/平年。
// mm∈[01,12] 否则不合法
// dd∈[01,31] 否则不合法
// 特别地:
// dd∈[29,31] 需要根据月份、闰年/平年进行讨论
bool isLegal (int yy, int mm, int dd)
{if(mm > 12 || mm <= 0) return false; // 月份不合法if(dd >31 || dd <= 0) return false; // 日期不合法if(dd <29) return true; // 日期小于29,必定合法else{// dd 为31的情况下, 2,4,6,9,11月是不可能的 if(dd == 31 && (mm == 2 || mm == 4 || mm == 6|| mm ==9 || mm == 11)) return false; // dd 为30的情况下,2月是不可能的 if(dd == 30 && mm == 2) return false;// dd 为29的情况下,2月的平年是不可能的if(dd == 29 && mm == 2) {int year = (yy < 60)? 2000 + yy : 1900 + yy;if(!(isLeapYear(year))) return false;}} return true;
}struct Date
{int date[3]; // 0-yy; 1-mm; 2-ddbool operator < (const struct Date dt) const{for(int i = 0; i < 3; i++){if(date[i] > dt.date[i]) return false;else if(date[i] < dt.date[i]) return true;}return false;}
}legalDate[3]; int sum = 0; //记录实际共有几个合法的日期 //把合法的日期加入legalDate
void addLegalDate(int y, int m, int d)
{int year = (y < 60)? 2000 + y : 1900 + y;for(int i = 0; i < sum; i++){//避免出现重复的日期 if(legalDate[i].date[0] == year && legalDate[i].date[1] == m && legalDate[i].date[2] == d)return;}legalDate[sum].date[0] = year;legalDate[sum].date[1] = m;legalDate[sum].date[2] = d;sum++;
}int main()
{int date[3]; scanf("%d/%d/%d", &date[0], &date[1], &date[2]); //穷举3种可能的情况 // 年/月/日 if(isLegal(date[0], date[1], date[2])){addLegalDate(date[0], date[1], date[2]);}// 月/日/年 if(isLegal(date[2], date[0], date[1])){addLegalDate(date[2], date[0], date[1]);}// 日/月/年 if(isLegal(date[2], date[1], date[0])){addLegalDate(date[2], date[1], date[0]);}//按日期先后排序 sort(legalDate, legalDate + sum);for(int i = 0; i < sum; i++){printf("%d-%02d-%02d\n", legalDate[i].date[0], legalDate[i].date[1], legalDate[i].date[2]);}return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet"></div>
蓝桥杯 - 历届试题 - 日期问题相关推荐
- [蓝桥杯][历届试题]国王的烦恼(反向+并查集)
问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题
二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化. #include&l ...
- 蓝桥杯历届试题代码参考
蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...
- 问题 1433: [蓝桥杯][历届试题]危险系数(并查集and暴力)
问题 1433: [蓝桥杯][历届试题]危险系数 时间限制: 1Sec 内存限制: 128MB 提交: 123 解决: 39 题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的 ...
- 蓝桥杯c语言试题幸运数,蓝桥杯 历届试题 幸运数 dfs
时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...
- 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...
Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...
- 蓝桥杯 历届试题 拉马车 java
Prev43 历届试题 拉马车 题目如下: 问题描述:小的时候,你玩过纸牌游戏吗?有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友.其规则简述如下:假设参加游戏的小朋友是A和 ...
- 蓝桥杯历届试题 剪格子 (DFS)
http://lx.lanqiao.cn/problem.page?gpid=T27 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 如下图所示,3 ...
最新文章
- 高糊视频秒变4K,速度快了9倍!东南大学提出新的视频超分辨率系统
- (转)深入理解SP、LR和PC
- 【知识总结】Java类初始化顺序说明
- 字符串相似度算法——Levenshtein Distance算法
- 了解Callable和Spring DeferredResult
- 信息技术与计算机文化的问题,信息技术与计算机文化
- Markdown 添加emoji
- 聊城初中计算机考试成绩查询,聊城市初中学业水平考试成绩查询系统入口2021...
- C#窗体-个人简历生成(自己设计并编写一个 Windows 应用程序,要求用到TextBox、GroupBox、RadioButton )
- 深度学习Hello World --- 手写体识别 实战
- 青果教务处系统爬虫(java)
- 均匀裁剪图片(3000X3000到1000X1000)
- “拼多多”被薅的问题出在哪儿?损失将如何买单?
- Flink在监控流计算中的应用
- 用C语言解“厘米换算英尺英寸”问题
- SQL-DAY 7(SQL查询语句的应用案例:汽车新销售)
- 【JZOJ】WZK打雪仗
- 第一天之导入Vuetify的坑
- Canvas 从 0 到 1 -- 开发 2D 游戏《保卫家园》-- 【上篇】
- Jquery 对 身份证号码的验证 (15/18位)