既然使用Python,那就可以不用像C语言那样,自己手写判断闰年、判断每天每月什么的,可以用Python的datetime包。Talk is cheap,show me code.
import datetime
n=input()
y=int(n[:4])
m=int(n[4:6])
d=int(n[6:])
t=datetime.date(y,m,d)
flag=True
while True:
t = t + datetime.timedelta(days=1)
s = str(t).replace('-', '')
if s==s[::-1] and flag:
print(s)
flag=False
if s[:4]==s[-1:-5:-1] and s[1]==s[3] and s[0]==s[2]:
print(s)
break
由于datetime.date(year,month,day)接收的三个参数都是整数,所以先int转化,不能在input()时就int,因为整型变脸不能用索引切片。
datetime.date(y,m,d)的输出结果中带有“-”分隔符,后面带着分隔符不好操作,所以先replace掉。
它的日期怎么实现加减呢?用到timedelta(),这个函数的参数为days=1时,就加一天,days=-1时就减一天,不过要在原来的日期基础上进行,也就是前面的+t。
设置flag是为了判断只有一次输出了回文数。
回文的判断和ABABBABA就不用多说了,可按索引一位一位的比较判断,也可以用切片,Python的优势。