题目:
暴力破解,注意for循环区间左闭右开,10001是第一个回文数,边界值999999应该纳入循环。
另外,注意判定条件对时间的影响,先判断回文,再判断和是否等于n,否则会超时。
#回文
import math
import string
import time
def infer1(str1,i):
if(n == eval(str1[0])+eval(str1[1])+eval(str1[2])+eval(str1[3])+eval(str1[4])):
print(i)
def infer2(str1,i):
if(n == eval(str1[0])+eval(str1[1])+eval(str1[2])+eval(str1[3])+eval(str1[4])+eval(str1[5])):
print(i)
if __name__ == '__main__':
#start = time.perf_counter()
n = eval(input())
for i in range(10001,100000):
str1 = str(i)
if(str1[0]==str1[4] and str1[1]==str1[3]):
infer1(str1,i)
for i in range(100001,1000000):
str1 = str(i)
if(str1[0]==str1[5] and str1[1]==str1[4] and str1[2] == str1[3]):
infer2(str1,i)
#end = time.perf_counter()
#print(f"Running time: {end - start} Seconds")