ACwing中如何使用回文日期

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

创新互联公司专注于金川企业网站建设,成都响应式网站建设公司,商城网站制作。金川网站建设公司,为金川等地区提供建站服务。全流程按需网站开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

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

#include
#include
#include
#include

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<

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


当前题目:ACwing中如何使用回文日期
分享地址:http://csdahua.cn/article/jjpiji.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流