蓝桥杯_题库|蓝桥杯_回文日期【第十一届】【省赛】【B组】_日期问题


蓝桥杯_题库|蓝桥杯_回文日期【第十一届】【省赛】【B组】_日期问题
文章图片
蓝桥杯_题库|蓝桥杯_回文日期【第十一届】【省赛】【B组】_日期问题
文章图片



// #include using namespace std; #define is_leap(y) ( y%4==0 && y%100 || y%400==0 ) // 123456789 10 11 12 const int month_day[]={ 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int year,month,day; inline bool f( const string& s )// 不可以连等 { if( s[0]==s[2] && s[1]==s[3] )// 已满足回文 return true; return false; } // ABAB BA BA // 0101 10 10 // 0123 45 67bool error()// true is error {// month==0 || day==0 (x) if( !( month>=1 && month<=12 ) ) return true; int t=month_day[month]; if( is_leap(year) ) t++; if( !( day>=1 && day<=t ) ) return true; return false; }int main() { stringstream ss; string s,t; int n,flag; while( cin>>n ) { flag=1; while( n++ ) // ( a=="0" || b=="0" ) { year=n/10000; month=n%10000/100; day=n%100; if( error() ) continue; ss.clear(); ss.str(""); ss<>s; string re=s; // 直接用翻转函数判等 reverse( re.begin(),re.end() ); if( re==s ) { if( flag ) { cout<


【蓝桥杯_题库|蓝桥杯_回文日期【第十一届】【省赛】【B组】_日期问题】


    推荐阅读