【问题描述】
2020 年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按“yyyymmdd” 的格式写成一个8 位数是20200202,
恰好是一个回文数。我们称这样的日期是回文日期。
有人表示20200202 是“千年一遇” 的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期:20211202 即2021年12月2日。
也有人表示20200202 并不仅仅是一个回文日期,还是一个ABABBABA型的回文日期。对此小明也不认同,因为大约100 年后就能遇到下一个ABABBABA 型的回文日期:21211212 即2121 年12 月12 日。算不上“千年一遇”,顶多算“千年两遇”。
给定一个8 位数的日期,请你计算该日期之后下一个回文日期和下一个ABABBABA型的回文日期各是哪一天。

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

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

【样例输入】

20200202

【样例输出】

20211202
21211212

【评测用例规模与约定】

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

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool bbb(int i)
{string str=to_string(i);int j;if(str[0]==str[7]&&str[0]==str[2]&&str[2]==str[5]&&str[3]==str[1]&&str[3]==str[4]&&str[3]==str[6]){return false;}return true;
}
bool check(int i)
{string str=to_string(i);int j;if(str[0]==str[7]&&str[1]==str[6]&&str[2]==str[5]&&str[3]==str[4]){return false;}return true;
}
bool ccc(int i)
{if(i%4==0||i%100==0)return false;return true;
}int main()
{int i=0,j,k,m,n;int w,e;bool bns=true;scanf("%d",&n);int y=n/10000;int x=n%10000/100;int z=n%100;
while(1)
{for(j=x;j<=12;j++){if(j==1||j==3||j==5||j==7||j==8||j==10||j==12){for(k=z+1;k<=31;k++){m=y*10000+j*100+k;if(check(m)==false){bns=false;w=j;e=k;   break;}}if(bns==false)break;}if(j==4||j==6||j==9||j==11){for(k=z+1;k<=30;k++){m=y*10000+j*100+k;if(check(m)==false){bns=false;  w=j;e=k;break;}}if(bns==false)break;}if(j==2){if(ccc(y)==false){for(k=z+1;k<=28;k++){m=y*10000+j*100+k;if(check(m)==false){bns=false; w=j;e=k;break;}}if(bns==false)break;}else{for(k=z+1;k<=29;k++){m=y*10000+j*100+k;if(check(m)==false){bns=false;   w=j;e=k;break;}}if(bns==false)break;} }}if(bns==false)break;y++;
}printf("%d%02d%02d",y,w,e);printf("\n");bns=true;while(1)
{for(j=x;j<=12;j++){if(j==1||j==3||j==5||j==7||j==8||j==10||j==12){for(k=z+1;k<=31;k++){m=y*10000+j*100+k;if(bbb(m)==false){bns=false;w=j;e=k; break;}}if(bns==false)break;}if(j==4||j==6||j==9||j==11){for(k=z+1;k<=30;k++){m=y*10000+j*100+k;if(bbb(m)==false){bns=false;    w=j;e=k;break;}}if(bns==false)break;}if(j==2){if(ccc(y)==false){for(k=z+1;k<=28;k++){m=y*10000+j*100+k;if(bbb(m)==false){bns=false;   w=j;e=k;break;}}if(bns==false)break;}else{for(k=z+1;k<=29;k++){m=y*10000+j*100+k;if(bbb(m)==false){bns=false; w=j;e=k;break;}}if(bns==false)break;} }}if(bns==false)break;y++;
}printf("%d%02d%02d",y,w,e);return 0;
}

回文日期2020 C语言相关推荐

  1. 蓝桥—回文日期(c语言)

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  2. 蓝桥杯训练:回文日期(#C语言)

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  3. 回文日期 php,c语言程序实例大全,220个详细程序源代码

    c语言 程序设计 实例 大全 目录: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 ...

  4. 2020蓝桥杯真题回文日期 C语言/C++

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  5. Python案例:输出指定要求的回文日期

    文章目录 一.提出任务 二.完成任务 (一)编写程序,实现功能 (二)运行程序,查看结果 一.提出任务 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将 ...

  6. 蓝桥杯(Java) 回文日期

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  7. 输出指定要求的回文日期与字符串拼接

    知识点:字符串拼接 (1)字符串直接用+拼接 演示直接用+连接两个字符串 这样会有三个内存单元来存放字符串,浪费内存空间,建议采用StringBuffer(线程安全)或者StringBuilder(线 ...

  8. 蓝桥杯 历届试题 回文日期 C

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

  9. 洛谷 题解 P2010 【回文日期】

    因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...

最新文章

  1. 我们软件是如何保障用户数据安全的?
  2. Cydia for Android2
  3. Android 将ARGB图片转换为灰度图
  4. 南瑞变压器保护装置说明书_电力试验:变压器感应耐压试验(二)
  5. oracle数据库导入导出expdp/impdp命令详细操作过程
  6. 【PAT天梯】【L2-2 小字辈(左子右兄加强版)】(树,水题)
  7. 值不值得入手_iPhone11现在还值不值得入手?真实用户说出心里话
  8. redis专题:redis缓存穿透、缓存击穿、缓存雪崩等问题如何解决?
  9. 产生java的动态库文件so的配置步骤
  10. 留给华为、小米、OPPO 们的时间不多了!
  11. Mac关闭SIP模式 开启root
  12. hdu 1010 Tempter of the Bone(dfs+奇偶剪枝)
  13. cad刷新快捷键_47个快捷键、50个CAD技巧。
  14. Nvidia驱动负优化与GTX1070的测试
  15. 路边停车系统的具体流程是什么
  16. 聚合支付二维码生成原理
  17. 微软中国CTO:手机里装的App一上网基本等于裸奔
  18. MySQL如何退出命令行
  19. 推荐一个有用的Excel操作类库 LinqToExcel
  20. linux终端设置为中文

热门文章

  1. 图片转excel表格怎么弄的呢?这三个方法让你实现图片转表格
  2. 基金韭菜们的自我修养:程序员上班摸鱼在VSCode看股票 基金数据!!!当个合格的韭菜
  3. 复习一波HashMap底层实现原理解析
  4. 解决uni-app开发中刘海屏下背景不能全屏铺满的问题
  5. Houdini超全的电脑配置要求汇总,装机必看
  6. 直击2019云栖大会,袋鼠云分享新零售数据中台搭建五步法
  7. 数据结构:线性表(List)【详解】
  8. 部门精细化管理流程优化记(一)
  9. 拼多多物流会出现哪些原因导致被消费者投诉,被投诉之后怎么解决,
  10. 【BZOJ4883】棋盘上的守卫