第八届蓝桥杯第七题日期问题
----
一个日期,格式是"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 <xxx>
不能通过工程设置而省略常用头文件。
看着挺简单
但是我感觉挺坑爹的。
#include <cstdio>
#include <algorithm>
using namespace std;
typedef struct{
int year, month, day;
}date;
bool isyn(int y){
return (y % 4 == 0) || (y % 100 && y % 400 == 0);
}
void print(const date &d){
printf("%02d-%02d-%02d\n", d.year, d.month, d.day);
}
bool compare(const date &d1, const date &d2){
if(d1.year != d2.year){
return d1.year < d2.year;
}
if(d1.month != d2.month){
return d1.month < d2.month;
}
return d1.day < d2.day;
}
bool check(const date &d){
static int month_days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isyn(d.year)){
month_days[2] = 29;
}else{
month_days[2] = 28;
}
if(d.year < 1960 || d.year > 2059){
return false;
}
if(d.month < 1 || d.month > 12){
return false;
}
if(d.day < 1 || d.day > month_days[d.month]){
return false;
}
}
int main()
{
int aa, bb, cc;
scanf("%d/%d/%d", &aa, &bb, &cc);
date d[6] = {
{2000 + aa, bb, cc},
{1900 + aa, bb, cc},
{2000 + cc, aa, bb},
{1900 + cc, aa, bb},
{2000 + cc, bb, aa},
{1900 + cc, bb, aa}
};
sort(d, d + 6, compare);
for(int i = 0; i < 6; ++ i){
if(check(d[i])){
print(d[i]);
}
}
return 0;
}
第八届蓝桥杯第七题日期问题相关推荐
- 【第八届蓝桥杯第七题日期问题】
[第八届蓝桥杯第七题日期问题] Description 小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期 ...
- 第八届蓝桥杯第八题日期问题
标题:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔就会 ...
- 第八届蓝桥杯第八题--包子凑数(C语言)
第八届蓝桥杯第八题–包子凑数(C语言) 一.比赛题目 1.题目要求 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为 ...
- 第八届蓝桥杯-第四题方格分割
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共 ...
- 第八届蓝桥杯_第一题_迷宫
感觉蓝桥杯一年比一年难,今年第一题就做了好久. 标题:迷宫 X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡 ...
- 第八届蓝桥杯第五题取数位
题目如下: 求1个整数的第k位数字有很多种方法. 以下的方法就是一种. // 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; retur ...
- 第八届蓝桥杯 java B组 日期问题
标题:日期问题 小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的 ...
- 第八届蓝桥杯第十题 k倍区间
给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. 你能求出 ...
- 第八届蓝桥杯第四题方格分割
题目如下: 标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在 ...
最新文章
- mysql安装的根目录_MySql安装及基础配置(一)
- 人人都是 DBA(VII)B 树和 B+ 树
- AcWing 845. 八数码(3阶数字华容道):bfs求最短路,状态表示困难
- audio标签控制音量_HTML5中audio与video标签的使用
- 理解 React Hooks
- JavaScript jQuery获取radio/下拉框的选中值
- 从用户的角度看 c语言中函数有两种,【南开大学】20秋学期(1709、1803、1809、1903、1909、2003、2009 )《C语言程序设计》在线作业答卷...
- iPhone 14 Pro将采用开孔全面屏:明年iPhone 15全系标配
- Javascript的数组操作(笔记)
- datatable排序:DataTable的排序、检索、合并
- 关于OMC链接LANSWITCH
- 软件工程专业英语专用名词翻译
- Win10+Ubuntu+Deepin+macOS+PhoenixOS+FydeOS+centOS+openSUSE+Kylin+ChromeOS+RedFlag等多系统安装(包含rEFind引导)
- allpairs工具的使用
- 电脑常用快捷键的使用
- 用Xilinx的FPGA实现HDMI(DVI)接收器
- Excel中如何实现批量中文转拼音
- Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter2:Basic of Math and Graph
- 使用Cpoly.f90注意事项
- OA系统:搭建项目框架