1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int day[15]={0,31,0,31,30,31,30,31,31,30,31,30,31}; //返回x是否合理 bool f(int x){ //取出年月日 int y = x/10000; int m = x/100%100; int d = x%100; //判断月份是否合法 if(m<1||m>12) return false; //校准2月天数 if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) day[2]=29; else day[2]=28; //判断日期是否合法 if(d<1||d>day[m]) return false; return true; } //返回x是否回文 bool g(int x){ if( x%10==x/10000000%10&& x/10%10==x/1000000%10&& x/100%10==x/100000%10&& x/1000%10==x/10000%10) return true; else return false; } int main() { int date1,date2; cin>>date1>>date2;//00000001~99999999 int cnt=0; //合理的日期数量:<9999*12*31 //回文日期数量: <9999 for(int y=0000;y<=9999;y++) { int i = y*10000; i+=(y/1000); i+=(y/100%10)*10; i+=(y/10%10)*100; i+=(y%10)*1000; //i合不合理 if(!f(i)) continue; /* //i是不是回文 if(!g(i)) continue; */ //i是不是在范围内 if(i<date1||i>date2) continue; //计数器++ cnt++; } cout<<cnt<<"\n"; return 0; }
- 1
信息
- ID
- 101
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 86
- 已通过
- 24
- 上传者