回文日期

回文日期

https://ac.nowcoder.com/acm/problem/16438

/思路:回文日期由年月日组成,如果对两个时间点中的所有日期都进行枚举,
将会多做很多的无用功,细心一点我们可以发现其实总共能形成回文日期的个数并不多,
那么如果只对月日能形成的回文日期全部例举出来,判断是否在给定区间内,
在区间内就进行计数,否则不计,最后将计的数输出即可
/
//笱蒻第一篇题解,有问题请指正;
//代码如下:
#include<iostream>
using namespace std;
int r[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//月份从一月开始,数组中一月的天数就存在r[1]中;
//因为是直接通过月日回文来找年,所以2月直接存29,不用进行闰年判断;
int main(){
int m,n,sum,number=0;
cin>>m>>n;//输入两个端点; </iostream>

for(int i=1;i<=12;i++)
    for(int j=1;j<=r[i];j++){
        int c=j%10*1000+j/10*100+i%10*10+i/10;
        int sum=c*10000+i*100+j;
        //将所有的回文日期全部例举出来,通过if判断计数; 
    if(sum>=m&&sum<=n){
        number++;
    } }
cout<<number<<endl;//输出计数即可; 
return 0;

}

全部评论
秒啊
点赞 回复 分享
发布于 2022-01-06 16:22
厉害啊
点赞 回复 分享
发布于 2023-01-10 16:54 浙江
miao极了!
点赞 回复 分享
发布于 2023-08-28 17:09 山东
认可
点赞 回复 分享
发布于 01-27 20:51 山东

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
32 收藏 评论
分享
牛客网
牛客企业服务