题解 | 回文日期

回文日期

https://www.nowcoder.com/practice/0372242deac541d0b578cc6563395681

#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define endl '\n'
using vi=vector<int>;
using vll=vector<ll>;
using pqi=priority_queue<int>;
using pqll=priority_queue<ll>;
using qi=queue<int>;
typedef pair<int,int> pii;
using vpii=vector<pii>;
const int MOD=998244353;
int runnian(int a){//写一个判断闰年的函数
    if(a%100!=0&&a%4==0) return 1;
    else if(a%400==0) return 1;
    else return 0;
}
int hefariqi(int a){//写一个判断日期是否合法的函数
    if((a/100)%100<=12){//月份小于等于12
        //大月
        if(a/100%100==1||a/100%100==3||a/100%100==5||a/100%100==7||a/100%100==8||a/100%100==10||a/100%100==12){
            if(a%100<=31) return 1;
        }
        //小月
        if(a/100%100==4||a/100%100==6||a/100%100==9||a/100%100==11){
            if(a%100<=30) return 1;
        }
        //二月单独判断
        if(a/100%100==2){
            if(runnian(a/10000)){//如果年份是闰年
                if(a%100<=29) return 1;
            }
            else{//平年
                if(a%100<=28) return 1;
            }
        }
    }
    return 0;
}
int huiwen(int a){//写一个判断是否是回文数的函数
    int temp=a;
    int jud=0;
    for(int i=1;i<=8;i++){
        jud*=10;
        jud+=temp%10;
        temp/=10;
    }
    if(jud==a) return 1;
    return 0;
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int count=0;
    int a,b;cin>>a;cin>>b;
    for(int i=a;i<=b;i++){
        if(hefariqi(i)&&huiwen(i)) count++;
    }
    cout<<count<<endl;
    return 0;
}



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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