当前位置: 首页 > news >正文

每日一题 第七十期 洛谷 [蓝桥杯 2020 省 AB2] 回文日期

[蓝桥杯 2020 省 AB2] 回文日期

题目描述

2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 yyyymmdd 的格式写成一个 8 8 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。

有人表示 20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到 2 年之后就是下一个回文日期:20211202 即 2021 年 12 月 2 日。

也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。对此小明也不认同,因为大约 100 100 100 年后就能遇到下一个 ABABBABA 型的回文日期:21211212 即 2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。

给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。

输入格式

输入包含一个八位整数 N N N,表示日期。

输出格式

输出两行,每行 1 1 1 个八位数。第一行表示下一个回文日期,第二行表示下
一个 ABABBABA 型的回文日期。

样例 #1

样例输入 #1

20200202

样例输出 #1

20211202
21211212

提示

对于所有评测用例, 10000101 ≤ N ≤ 92200229 10000101 \le N \le 92200229 10000101N92200229,保证 N N N 是一个合法日期的 8 8 8 位数表示。

蓝桥杯 2020 第二轮省赛 A 组 G 题(B 组 G 题)。

AC代码:

#include<iostream>
#include<cstring>
using namespace std;int a;
int mo[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int o[10];
bool check1(int x)
{int k = 0;memset(o, 0, sizeof o);while(x){o[k ++] = x % 10;x /= 10;}for(int i = 0; i < 8; i ++){if(o[i] != o[8 - i - 1]) return false;}return true;
}
bool check2(int x)
{int k = 0;memset(o, 0, sizeof o);while(x){o[k ++] = x % 10;x /= 10;}for(int i = 0; i < 8; i ++){if(o[i] != o[8 - i - 1]) return false;}if(o[0] == o[2] && o[1] == o[4] && o[1] != o[0]) return true;else return false;
}
int main()
{cin >> a;int m = a / 100 % 100;int d = a % 100;int cnt1 = 0, cnt2 = 0;int s1 = 0, s2 = 0;//记录得到的两个日期int flag1 = 0, flag2 = 0;// 记录是否得到了for(int i = a / 10000; ; i ++){if(cnt1 == 0) cnt1 = 1;else m = 1;if((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0)){mo[2] = 29;}else mo[2] = 28;for(int j = m; j <= 12; j ++){if(cnt2 == 0) cnt2 = 1;else d = 1;for(int k = d; k <= mo[j]; k ++){int s = i * 10000 + j * 100 + k;if(check1(s) && s != a && !flag1) s1 = s, flag1 = 1;if(check2(s) && s != a && !flag2) s2 = s, flag2 = 1;if(flag1 && flag2) break;}if(flag1 && flag2) break;}if(flag1 && flag2) break;}cout << s1 << endl << s2 << endl;return 0;
}
http://www.lryc.cn/news/332550.html

相关文章:

  • 蓝桥杯第十四届C++A组(未完)
  • 职场口才提升之道
  • 【算法练习】28:选择排序学习笔记
  • 【关于窗口移动求和的两种计算方法】
  • Win10文件夹共享(有密码的安全共享)(SMB协议共享)
  • Client sent an HTTP request to an HTTPS server
  • Springboot传参要求
  • 数字乡村创新实践探索:科技赋能农业现代化与乡村治理体系现代化同步推进
  • C语言——找单身狗1
  • Day82:服务攻防-开发组件安全Solr搜索Shiro身份Log4j日志本地CVE环境复现
  • 网络协议——VRRP(虚拟路由冗余协议)原理与配置
  • Elasticsearch:我们如何演化处理二进制文档格式
  • 第八讲 Sort Aggregate 算法
  • clickhouse MPPDB数据库--新特性使用示例
  • MATLAB多级分组绘图及图例等细节处理 ; MATLAB画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线
  • 20240405,数据类型,运算符,程序流程结构
  • Prometheus+grafana环境搭建Nginx(docker+二进制两种方式安装)(六)
  • 贝叶斯逻辑回归
  • Win10 下 Vision Mamba(Vim-main)的环境配置(libcuda.so文件无法找到,windows系统运行失败)
  • 4 万字全面掌握数据库、数据仓库、数据集市、数据湖、数据中台
  • Leetcode 64. 最小路径和
  • FANUC机器人故障诊断—报警代码更新(三)
  • mysql 本地电脑服务部署
  • 爬虫学习第一天
  • labview如何创建2D多曲线XY图和3D图
  • 【华为OD机试】芯片资源限制(贪心算法—JavaPythonC++JS实现)
  • 服务器硬件构成与性能要点:CPU、内存、硬盘、RAID、网络接口卡等关键组件的基础知识总结
  • STC89C51学习笔记(四)
  • Arcgis Pro地理配准
  • 数字转型新动力,开源创新赋能数字经济高质量发展