算法入门——回文日期

枚举 · 例3-回文日期

https://ac.nowcoder.com/acm/contest/20960/1006

题意

  • 计数两日期之间的回文日期

思路

  • 枚举所有年份,构造月份判断是否合法
  • 枚举所有月份和日期,构造年月日看是否在区间内
  • 但是,构造年份检查月份还要分大小月以及平年闰年,相对麻烦,故构造年月日是更为便捷的解法

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int st,ed,ans=0;
    int up[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    cin>>st>>ed;
    for(int i=1;i<=12;i++){
        for(int j=1;j<=up[i];j++){
            int y=j%10*1e7+j/10*1e6+i%10*1e5+i/10*1e4+i*1e2+j;
            if(y>=st&&y<=ed)ans++;
        }
    }
    cout<<ans;
    return 0;
}

  • 计数,构造,枚举,总是勾搭在一起

  • 2025.4.19 枚举限制多的(月份),判断限制少的(年)

    闰年的判断被规避了,92200229是闰年

全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
牛客92804383...:在他心里你已经是他的员工了
点赞 评论 收藏
分享
这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务