解题思路:
采用循环,数据较大。不建议。
直接构造回文日期,可以知道每年最多有一个回文日期。进行查找即可。
注意事项:
参考代码:
s = input().strip() y = int(s[:4]) a = 0 b = 0 aflag = 0 bflag = 0 while True: temp = str(y)[::-1] m = int(temp[:2]) d = int(temp[2:4]) if 1<= m <= 12: if m == 2: if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0): if 1<= d <=29: if not aflag: a = str(y)+temp if int(a) > int(s): aflag = 1 if not bflag: if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]: b = str(y)+temp if int(b) > int(s): bflag = 1 else: if 1 <= d <= 28: if not aflag: a = str(y)+temp if int(a) > int(s): aflag = 1 if not bflag: if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]: b = str(y)+temp if int(b) > int(s): bflag = 1 elif m in (4,6,9,11): if 1 <= d <= 30: if not aflag: a = str(y)+temp if int(a) > int(s): aflag = 1 if not bflag: if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]: b = str(y)+temp if int(b) > int(s): bflag = 1 else: if 1 <= d <= 31: if not aflag: a = str(y)+temp if int(a) > int(s): aflag = 1 if not bflag: if len(set(list(temp))) == 2 and temp[0] == temp[2] and temp[1] == temp[3]: b = str(y)+temp if int(b) > int(s): bflag = 1 if aflag and bflag: print(a) print(b) break y = y + 1
0.0分
3 人评分
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:609 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:517 |
买不到的数目 (C++代码)浏览:868 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:458 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
字符逆序 (C语言代码)浏览:621 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:477 |
盐水的故事 (C语言代码)浏览:1529 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:2166 |