20200202

​——————————————更新线——————————————
好一个回文日期,押题2020年10月17日的蓝桥杯第二轮省赛。判断回文日期的关键函数是一样的。

——————————————更新线——————————————
今天是2020年02月02日,星期日,坐标湖南郴州,天气多云。今天是一个回文日期20200202,谐音“爱你爱你你爱你爱”,珍惜身边每一个爱你的和你爱的人。

我写了一段C++代码来查看这个世纪剩下的所有回文日期,一共9个(含今日),代码运行结果如下。

源代码如下:

#include <bits/stdc++.h>
using namespace std;
#define Up(i,a,b) for(int i = a; i <= b; i++)

bool isLeapYear(int y)
{
    return (y%4==0 && y%100!=0) || (y%400==0);
}

bool isPalindrome(int y,int m,int d)
{
    stringstream ss;
    ss << y << setw(2) << setfill('0') << m << setw(2) << setfill('0') << d;
    string str;
    ss >> str;
    string _ = str;
    reverse(_.begin(),_.end());
    return str==_;
}

int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cout << "今天是20200202, 21世纪剩下的回文日期如下:" << endl << endl;
    Up(i,2020,2100)
    {
        int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(isLeapYear(i)) a[2]++;  //闰年二月有29天
        Up(j,1,12)
        {
            Up(k,1,a[j])
            {
                if(isPalindrome(i,j,k))
                {
                    printf("%04d年%02d月%02d日是一个回文日期\n\n",i,j,k);
                }
            }
        }
    }
    return 0;
}

但愿如此,长长久久,平安喜乐。