温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ACwing中如何使用回文日期

发布时间:2021-08-05 16:15:26 来源:亿速云 阅读:133 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关ACwing中如何使用回文日期,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

手写一个日历累死。
而八位数的回文,一旦前四位确定好,后四位就一定,所以只需要枚举四位数字的。
所以,这个题的思路:先枚举回文,再判断该数字是否在给定范围内,在判断其是不是合法日期。
判断合法日期:年份一定正确,月份要在1~12内,日期根据月份的不同,有不同的天数,这个可以考虑用一个数组来存。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;

int date1,date2;
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool check_date(int date){
    int year=date/10000;
    int month=date%10000/100;
    int day=date%100;
    if(month==0||month>12) return false;
    if(day==0||month!=2&&day>days[month]) return false;
    if(month==2){
        //判断闰年
        int leap=year%100 && year%4==0 || year%400==0;
        if(day>leap+28) return false;
    }
    return true;
}

int main(){
    cin>>date1>>date2;
    int res=0;
    //枚举回文(前四位确定好之后,后四位就一定确定)
    for(int i=1000;i<10000;i++){
        int date=i,x=i;
        for(int j=0;j<4;j++){
            date=date*10+x%10;
            x/=10;
        }
        //判断是否在范围内并且是个合法日期
        if(date1<=date && date2>=date && check_date(date)) res++;
    }
    cout<<res<<endl;
    return 0;
}

看完上述内容,你们对ACwing中如何使用回文日期有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI