0
点赞
收藏
分享

微信扫一扫

Python——蓝桥杯【特殊回文数】

彩虹_bd07 2022-04-07 阅读 51
python

题目:
在这里插入图片描述
暴力破解,注意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")

在这里插入图片描述

举报

相关推荐

0 条评论