解题思路:
采用循环,数据较大。不建议。
直接构造回文日期,可以知道每年最多有一个回文日期。进行查找即可。
注意事项:
参考代码:
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语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:762 |
C二级辅导-统计字符 (C语言代码)浏览:577 |
大神老白 (C语言代码)浏览:768 |
C语言程序设计教程(第三版)课后习题8.9 (Java代码)浏览:1413 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:732 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:592 |
蚂蚁感冒 (C语言代码)浏览:1408 |
DNA (C语言代码)浏览:440 |
演讲大赛评分 (C语言代码)浏览:1696 |