蒟蒻第八个测试点WA求助

P2010 [NOIP2016 普及组] 回文日期

QAQvQAQ @ 2024-02-24 19:50:56

#include<bits/stdc++.h>
using namespace std;
int summ=0,q,m,qwer;
int rn(int x){
    if((x%4==0 && x%100!=0) || x%400==0){
        return 1;
    }else{
        return 0;
    }
}
bool hw(int x){
    q=x%10000;
    m=x/10000;
    qwer=0;
    qwer+=q%10*1000;
    q/=10;
    qwer=qwer+q%10*100;
    q/=10;
    qwer=qwer+q%10*10;
    q/=10;
    qwer=qwer+q%10;
    if(qwer==m){
        return true;
    }
    return false;
}
int main(){
    int d1,d2;
    cin>>d1>>d2;
    for(int i=d1;i<=d2;i++){
        //查看是否合法
        //这个月有多少天 
        int month=i/100%100;
        //这是多少年
        int year=i/10000; 
        int t;
        if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
            t=31;
        }else if(month==2 && rn(year)==1){
            t=29;
        }else if(month==2 && rn(year)==0){
            t=28;
        }else{
            t=30;
        }
        if(i%100>t){
            i-=t;
            i+=100;
        }
        if(month==13){
            i-=1200;
            i+=10000;
        }
        if(hw(i)){
            summ++;
        }
    }
    cout<<summ<<endl;
    return 0;
}
/*
10140211
30160810

79
*/

by Oreo_Coding @ 2024-02-29 19:50:25

这个地方d1和d2好像是一个年月日的格式

所以说好像不能直接用for循环


|