• 蓝桥杯官网练习题(回文日期)


    问题描述

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

    输入描述

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

    输出描述

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

    输入输出样例

    示例

    输入

    20200202

    输出

    20211202

    21211212

    运行限制

    • 最大运行时间:1s
    • 最大运行内存: 256M

    //注意:当前日期 n 后的第一个回文日期可能与下一个ABABBABA 型回文日期相同。

    例如:

    输入

    11111110

    输出

    11111111

    11111111

    1. import java.util.Scanner;
    2. public class Main {
    3. public static void main(String[] args) {
    4. Scanner scan = new Scanner(System.in);
    5. int n=scan.nextInt();
    6. for(int i=n+1;;i++){
    7. if(check1(i)){
    8. System.out.println(i);
    9. for(int j=i;;j++) {
    10. if (check2(j)) {
    11. System.out.println(j);
    12. return;
    13. }
    14. }
    15. }
    16. }
    17. }
    18. public static boolean check1(int n){
    19. int ge=n%10;
    20. int shi=n/10%10;
    21. int bai=n/100%10;
    22. int qian=n/1000%10;
    23. int wan=n/10000%10;
    24. int shiwan=n/100000%10;
    25. int baiwan=n/1000000%10;
    26. int qianwan=n/10000000%10;
    27. int year=qianwan*1000+baiwan*100+shiwan*10+wan;
    28. int month=qian*10+bai;
    29. int day=shi*10+ge;
    30. int[] days=new int[]{0,31,0,31,30,31,30,31,31,30,31,30,31};
    31. if(year%400==0||(year%4==0&&year%100!=0)){
    32. days[2]=29;
    33. }
    34. else{
    35. days[2]=28;
    36. }
    37. if(month>0&&month<=12) {
    38. if (ge == qianwan && shi == baiwan && bai == shiwan && qian == wan
    39. && day > 0 && day <= days[month]) {
    40. return true;
    41. }
    42. }
    43. return false;
    44. }
    45. public static boolean check2(int n){
    46. int ge=n%10;
    47. int shi=n/10%10;
    48. int bai=n/100%10;
    49. int qian=n/1000%10;
    50. int wan=n/10000%10;
    51. int shiwan=n/100000%10;
    52. int baiwan=n/1000000%10;
    53. int qianwan=n/10000000%10;
    54. int year=qianwan*1000+baiwan*100+shiwan*10+wan;
    55. int month=qian*10+bai;
    56. int day=shi*10+ge;
    57. int[] days=new int[]{0,31,0,31,30,31,30,31,31,30,31,30,31};
    58. if(year%400==0||(year%4==0&&year%100!=0)){
    59. days[2]=29;
    60. }
    61. else{
    62. days[2]=28;
    63. }
    64. if(month>0&&month<=12) {
    65. if (ge == bai && ge == shiwan && ge == qianwan && shi == qian && shi == wan && shi == baiwan
    66. && day > 0 && day <= days[month] ) {
    67. return true;
    68. }
    69. }
    70. return false;
    71. }
    72. }

  • 相关阅读:
    2006-2019年全国30省绿色创新效率、绿色投资效率:基于SBM-DEA测算面板数据(数据+Stata代码)
    react-面试题
    Node.js的readline模块 命令行交互的模块
    以人为本是AI大模型的最终落脚点——读《大模型时代:ChatGPT开启通用人工智能浪潮》
    HDLC原理与配置
    java计算机毕业设计计算机office课程平台MyBatis+系统+LW文档+源码+调试部署
    神经系统图 基本结构图,神经系统的组织结构图
    了解CSS Flex:解析实例、用法和案例研究
    《代码大全2》第17章 不常见的控制结构
    GiliSoft USB Lock v10.5.0 电脑USB设备管控软件
  • 原文地址:https://blog.csdn.net/s44Sc21/article/details/134035668