• Day2.



    一、回文日期

    1、题目描述

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

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

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

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

    2、输入描述

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

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

    3、输出描述

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

    4、参考代码

    #include 
    using namespace std;
    
    bool isLeap(int y){
        return (y%4==0&&y%100!=0)||(y%400==0);
    }
    
    bool check(int year,int month,int day){//判断是否为合法日期
        if(month>12||month==0) return false;
        if(day>31) return false;
        if(month==2){
            if(isLeap(year)&&day>29)
                return false;
            if(!isLeap(year)&&day>28)
                return false;
        }
        if(month==4||month==6||month==9||month==11){
            if(day>30) return false;
        }
        return true;
    }
    int main()
    {
        int n,i;
        cin>>n;
        int a,b,c,d,e,f,g,h;//8位数字
        int year,month,day;
        bool flag=false;
        for(i=n+1;i<=99999999;i++){
            year=i/10000;
            month=(i%10000)/100;
            day=i%100;
            a=i%10;
            b=(i/10)%10;
            c=(i/100)%10;
            d=(i/1000)%10;
            e=(i/10000)%10;
            f=(i/100000)%10;
            g=(i/1000000)%10;
            h=(i/10000000)%10;
            if(a==h&&b==g&&c==f&&d==e&&flag==false){
                if(check(year,month,day)){
                    cout<<i<<endl;
                    flag=true;//只输出一个回文
                }
            }
            if(a==h&&b==g&&c==f&&d==e&&a==c&&b==d){
                if(check(year,month,day)){
                    cout<<i<<endl;
                    break;
                }
            }
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    注意:回文数是从头到尾,从尾到头读起来都是一样的数字,如2002,213312.

    二、杨辉三角形

    1、题目描述

    下面的图形是著名的杨辉三角形:
    在这里插入图片描述
    如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1,⋯给定一个正整数 N,请你输出数列中第一次出现 NN 是在第几个数?

    2、输入描述

    输入一个整数 N。

    3、输出描述

    输出一个整数代表答案。

    4、参考代码

    #include 
    #include
    using namespace std;
    int main()
    {
      long long n;
      cin>>n;
      if(n==1)
      {
        cout<<1;
        return 0;
      }
      vector<long long>a(44723+1);
      a[0]=1;
      for(int i=3;i<=44723;i++)
      {
        for(int j=i/2;j>0;j--)
        {
          if(j==i/2&&i&1){
            a[j]=a[j-1]*2;
          }
          else a[j]=a[j-1]+a[j];
          if(a[j]==n){
            cout<<i*(i-1)/2+j+1;
            return 0;
          }
        }
      }
      cout<<n*(n+1)/2+2;
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
  • 相关阅读:
    Redis 如何实现数据不丢失的?
    idea集成本地tomcat
    java ssm企业员工健康管理系统#计算机毕业设计
    浏览器事件循环原理 —— 任务优先级
    java毕业设计——基于java+MMAS的蚁群算法路由选择可视化动态模拟设计与实现(毕业论文+程序源码)——蚁群算法路由选择可视化动态模拟
    云的灵魂是人工智能
    DSPE PEG Azide, DSPE-PEG-N3;磷脂聚乙二醇叠氮
    TrieTree结构
    开源游戏服务器框架NoahGameFrame(NF)客户端的Log日志系统(五)
    文心一言 VS 讯飞星火 VS chatgpt (92)-- 算法导论8.3 5题
  • 原文地址:https://blog.csdn.net/qq_62217723/article/details/127934268