如何用python找出10000以内的全部回文数

如何用python找出10000以内的全部回文数,第1张

for i in range(10000):

s = str(i)

f = True

for j in range(len(s)//2):

if s[j] != s[-1-j]:

f = False

break

if f:

print (i)

from itertools import product

def palind(n):

return [n*'%s'%tuple( list(i) + list(i[-(n%2)-1::-1]) ) for i in product(*( [range(1,10)]+[range(10)]*((n-1)/2)) )]

print map(palind, [3,4,5])

如果需要产生回文数,一般会判断是否对称或比较反转后是否还是自身然后过滤,范围较大时,效率就不高了

n位的回文数是其实是由前Ceiling(n/2)位决定的,以上代码采用构造法生成回文数,生成10位以内的回文数<1s (不输出)

num=input("输入一个数num")

if num==num[::-1]:

print("num是回文数")

else:

print("num不是回文数")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12171981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存