千年一遇对称日 在 2021 年 12 月 02 日这天(20211202),有人发了这么一张图,上书“千年一遇对称日,万事圆满在今朝”。话是挺吉利的,但好像下一个对称日并不需要等上一千年…… 下面任给一个人的生卒年份,请你列出来这个人一辈子经过的所有对称日。 时间限制:1000 内存限制:65536 输入 输入第一行给出一个人的名字,是由不超过30个字符的英文字母和空格组成的、以回车结束的非空字符串。第二行按 `yyyymmdd - yyyymmdd` 的格式给出这个人的生卒年(`yyyy`)、月(`mm`)、日(`dd`)。 虽然生卒日期可能是虚构的,但题目保证出生日期在去世日期之前,且每个日期都是合法的,从 `00010101` 到 `99991231`。注意这里遵循“四年一闰,百年不闰,四百年再闰”的规则定义闰年,即年份是 4 的倍数,且不是 100 的倍数的,为普通闰年;年份是整百数的,必须是 400 的倍数才是闰年。闰年跟普通年的区别就是 2 月有 29 天。 输出 首先在第一行原样输出这个人的名字。随后按照时间顺序,每行输出该人所经历的一个对称日,格式与输入格式相同。注意:生卒日期也包含在内。 样例输入 Katherine Johnson 19180826 - 20200224 样例输出 Katherine Johnson 20011002 20100102 20111102 20200202
正确答案:参考实现(C):枚举生年~卒年每日期,判断yyyymmdd是否回文,先输出名字。闰年规则判断2月。样例→20011002 20100102 20111102 20200202。核心:回文日期枚举。
试卷来源:202503 青少年等级考试C/C++真题二级