蓝桥杯真题:回文日期

2023-11-03

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

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

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

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

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

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

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

输入输出样例
示例

输入

20200202
输出

20211202
21211212


运行限制
最大运行时间:1s
最大运行内存: 256M
分析:首先题目给出了范围(不过<=99999999好像才能过),我们想要求后边的回文,可以暴力求解。我们有两个任务,第一个是求下一个回文,第二个是求下一个ABABBABA的回文。

暴力方法:由于题目中已经给出范围,我们可以遍历从输入后一位之后的全部的8位数,然后当然不是所有的位数都满足年月日的范围的,我们需要检查,这是一个功能,可以抽象成一个函数,即判断日期合法的函数。

判断回文和判断AB只需要增加if语句就行,如果要优化算法自己去动手吧!

具体代码如下:

#include <iostream>
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
using namespace std;
bool check(int a)//判断日期合法
{
    int year=a/10000;//年
    int month=a%10000/100;//月
    int day=a%100;//日
    if(!month||month>12||!day) return false;
    if(month!=2&&day>months[month]) return false;
    if(month==2)
    {
        if((year%4==0&&year%100!=0)||(year%400==0))
        {
            if(day>29) return false;
        }
        else if (day>28) return false;
    }
    return true;
}
int main()
{
  int  N;
 cin>>N;
 for(int i=N+1;i<=99999999;i++)
 {  
    int n1=i/10000000,n2=(i/1000000)%10,n3=(i/100000)%10,n4=(i/10000)%10,y1=(i/1000)%10,y2=(i/100)%10,r1=(i/10)%10,r2=i%10;
    
     if(check(i))
    {
      if((n1==r2)&&(n2==r1)&&(n3==y2)&&(n4==y1)) 
      {
      cout<<i<<endl;
      break;
}
    }
 }
 for(int i=N+1;i<=99999999;i++)
 {  
    int n1=i/10000000,n2=(i/1000000)%10,n3=(i/100000)%10,n4=(i/10000)%10,y1=(i/1000)%10,y2=(i/100)%10,r1=(i/10)%10,r2=i%10;
    
     if(check(i))
    {
      if(((n1==n3)&&(n3==y2)&&(y2==r2))&&((n2==n4)&&(n4==y1)&&(y1==r1)))
      {
      cout<<i;
      break;
}
      
    }
 }
  
  return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯真题:回文日期 的相关文章

  • DMA(直接内存访问)

    如有雷同 纯属总结 直接内存访问 Direct Memory Access DMA 直接内存访问是一种内存访问技术 它允许计算机内部的某些硬件子系统 外设 可以独立地直接的读写系统内存 不需要CPU的介入处理 在同等程度的处理器负担下 DM

随机推荐

  • MySQL中的ROWNUM的实现

    MySQL 几乎模拟了 Oracle SQL Server等商业数据库的大部分功能 函数 但很可惜 到目前的版本 5 1 33 为止 仍没有实现ROWNUM这个功能 下面介绍几种具体的实现方法 建立实验环境如下 mysql gt creat
  • python 操作excel 教程_Python学习笔记(十六)—Python操作Excel

    Python中对Excel文件的操作包括 读 写 修改 如果要对其进行如上的操作需要导入Python的第三方模块 xlrd xlwd xlutils 其分别对应Python的读 写 修改的操作 一 安装Python的第三方模块 二 操作Ex
  • 论文笔记:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting

    2022 ICML 1 Intro 长时间序列问题是一个研究很广泛的问题 RNN以及变体会遇到梯度消失 梯度爆炸 这会在很大程度上限制他们的表现 Transformer的方法会导致很高的计算复杂度 以及很大的内存消耗 这也会使得在长时间序列
  • 运放电路中电容的一些特殊用法

    最近在进行实验室项目PCB设计的时候 看到一些运放电路中总有一些电容 但是由于自己非电子专业科班出身 对于这些电容的用法不是很懂 于是就自己上网搜集资料 先总结如下 方便将来回顾 1 https zhidao baidu com quest
  • Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

    加密解密 曾经是我一个毕业设计的重要组件 在工作了多年以后回想当时那个加密 解密算法 实在是太单纯了 言归正传 这里我们主要描述Java已经实现的一些加密解密算法 最后介绍数字证书 如基本的单向加密算法 BASE64 严格地说 属于编码格式
  • Hive基础调优详解

    本文基本涵盖以下内容 一 基于Hadoop的数据仓库Hive基础知识 二 HiveSQL语法 三 Hive性能优化 四 Hive性能优化之数据倾斜专题 五 HiveSQL优化十二板斧 六 Hive面试题 一 七 Hive Hadoop高频面
  • FCA-FineReport考试(2023-03-16)

    Part 1 判断题 总分 56分 得分 50 第1题 判断题 普通用户登录到决策系统平台与管理员登录界面相同 得分 0分 满分 2分 正确答案 A 你的答案 B 错误 A 正确 B 错误 第2题 判断题 部署报表工程到Tomcat 可以不
  • 如何使用Python将仅支持在线浏览的国家标准下载到本地并保存为PDF文件

    如何使用Python将仅支持在线浏览的国家标准下载到本地并保存为PDF文件 在日常工作和学习中 我们经常需要查阅国家标准以获取相关的技术规范和指导文件 然而 有些国家标准的在线浏览器界面并不方便 我们可能更希望将它们保存为本地的PDF文件以
  • 惯师科技给您拜年啦!

  • Python3: 上下文管理器、with语法、同时打开两个文件

    太长不看 使用with语句实现上下文管理器打开多个资源 例如打开两个文件 import contextlib contextlib contextmanager def open files file1 file2 try f1 open
  • selectpicker用法

    selectpicker selectpicker 初始化 style btn success 显示样式 size 20 selectpicker selectpicker val array 给多选selectpicker赋值 array
  • 高匿HTTP代理要如何挑选?

    近期 我经常收到此类问题 今天就来说清楚 很多时候 高匿HTTP代理能很好帮助解决用户的计算机安全和个人隐私安全问题 所以现在企业爬虫或者开发者个人需要用到HTTP代理的时候 都会选择高匿名级别的 不过目前市面上的HTTP代理以匿名程度划分
  • RDP微软远程连接工具:Microsoft Remote Desktop for Mac 中英直装版

    Microsoft Remote Desktop可以很方便地在Android安卓手机 平板或者iPhone iPad等iOS设备 甚至是Mac上直接远程连接并控制玩转PC电脑上的Windows 并且Microsoft Remote Desk
  • Oracle 自动共享内存管理(ASMM)与自动内存管理(AMM)

    相关参数 MEMORY MAX TARGET 不可动态调整 代表内存 SGA PGA 的最大值 SQL gt ALTER SYSTEM SET MEMORY MAX TARGET 1000M SCOPE SPFILE MEMORY TARG
  • 基于51单片机的水位水质检测系统Proteus仿真原理图PCB

    功能 0 本系统采用STC89C52作为单片机 1 LCD1602液晶实时显示水位 水质百分比 2 按键设置水位水质阈值并通过液晶显示 3 具备4个LED分别作为水位水质的上下限指示灯 4 具备声光报警功能 5 设置的阈值数据掉电不丢失 6
  • 静电、浪涌与TVS(测试标准、参数、选型)

    静电 浪涌与TVS 测试标准 参数 选型 作者 AirCity 2020 2 14 Aircity007 sina com 本文所有权归作者Aircity所有 ESD和浪涌问题往往是基带工程师最头疼的问题 因为测试标准严苛 问题神出鬼没 特
  • 如何输出long long型数据

    include
  • 每日学术速递6.13

    CV 计算机视觉 ML 机器学习 RL 强化学习 NLP 自然语言处理 Subjects cs CV 1 Tracking Everything Everywhere All at Once 标题 一次跟踪所有地方的一切 作者 Qianqi
  • gcc: command not found

    在linux出现gcc command nof found时 查看是否已经安装了gcc 查看命令 rpm q gcc root localhost local rpm q gcc package gcc is not installed从g
  • 蓝桥杯真题:回文日期

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