P2010 回文日期
题解
回文日期,一共8位,只需要枚举4位就好了其实,然后判断它是否合法
代码
#include<bits/stdc++.h> using namespace std; int data1,data2,ans=0; int huiwen(int x) { int y=x; int a1=y%10; y/=10; int a2=y%10; y/=10; int a3=y%10; y/=10; int a4=y%10; y/=10; y=x*10000+a1*1000+a2*100+a3*10+a4; return y; } bool check(int x) { int y=x; bool flag=0; int qq4=y/10000; if((qq4%4==0&&qq4%100!=0)||qq4%400==0) flag=1; y=y%10000; int yue=y/100; int day=y%100; if(yue<=0||yue>12) return false; if(day<=0||day>31) return false; if(yue==2) { if(flag&&day>29) return false; if(!flag&&day>28) return false; } if(yue==4||yue==6||yue==9||yue==11) { if(day>30) return false; } if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) { if(day>31) return false; } return true; } int main() { scanf("%d%d",&data1,&data2); for(int i=data1/10000;i<=data2/10000;i++) { int kk=huiwen(i); if(check(kk)) ans++; } printf("%d",ans); return 0; }