P2010 [NOIP2016 普及组] 回文日期

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int runnian(int x)
{
    if(x%4==0&&x%100!=0)return 1;
    else if(x%400==0)return 1;
    else return 0;
}
int truedate(int x)
{
    int year=x/10000,month=(x/100)%100,day=x%100;
    if(month==0||month>12)return 0;
    if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day>31)return 0;
    if((month==4||month==6||month==9||month==11)&&day>30)return 0;
    if(!runnian(year)&&month==2&&day>28)return 0;
    if(runnian(year)&&month==2&&day>29)return 0;
    return 1;
}
int main()
{
    int x,y,sum=0;cin>>x>>y;int x1=x/10000,y1=y/10000;
    for(int i=x1;i<=y1;i++)
    {
        int n=i*10000+i%10*1000+i%100/10*100+i%1000/100*10+i/1000;
        if(truedate(n)&&n>=x&&n<=y)sum++;
    }
    cout<<sum;
    return 0;
}
View Code
 

 

 
posted @ 2023-07-17 18:31  JMXZ  阅读(4)  评论(0)    收藏  举报