#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool res(int y,int m,int d){
    string a;
    if(m<=9){
        if(d<=9){
           a=to_string(y)+"0"+to_string(m)+"0"+to_string(d);
        }
        else  a=to_string(y)+"0"+to_string(m)+to_string(d);
    }
    else{
         if(d<=9){
            a=to_string(y)+to_string(m)+"0"+to_string(d);
        }
        else  a=to_string(y)+to_string(m)+to_string(d);
    }
    string b=a;
    reverse(a.begin(),a.end());
  if(b==a){
      
     return true;
      
  }
    else return false;
}
bool isr(int y){
    if(y%400==0) return true;
    else if(y%4==0&&y%100!=0) return true;
    else return false;
} 
int main(){
  string first,last;
  cin>>first>>last;
  int year1=stoi(first.substr(0,4));
  int year2=stoi(last.substr(0,4));
  int month1=stoi(first.substr(4,2));
  int month2=stoi(last.substr(4,2));
  int day1=stoi(first.substr(6,2));
  int day2=stoi(last.substr(6,2)); 
  int count=0;
  for(int i=year1;i<=year2;i++){
      int j=1;
      if(i==year1) j=month1;
      for(j;j<=12;j++){
          int day;
          if(i==year2&&j>month2) break; 
          if(j==1||j==3||j==5||j==7||j==8||j==10||j==12) day=31;
          else if(j==2&&isr(i)) day=29;
          else if(j==2&&!isr(i)) day=28;
          else day=30;
          int k=1;
          if(i==year1&&j==month1) k=day1;
          for(k;k<=day;k++){
              if(i==year2&&j==month2&&k>day2) break;
             if(res(i,j,k)) count++;
               
          }
      }
  }
  cout<<count;
}
这道题我是用字符串模拟的,难度还行,一些基础语法与循环条件一开始很难想到,然后看了大佬题解才发现不用这么麻烦。。。