python实现回文数筛选的两种思路

本文分享了两种判断回文数的方法,并通过Python代码实现。第一种方法将数字转换为字符串进行判断;第二种方法直接通过数学操作实现。文章最后展示了两种方法的实际运行结果。

自己做题时想的两种方法,供大家参考,有不足也欢迎指出

from functools import reduce
#**********第一种方法*****************
def is_palindrome(n):
	s=str(n)       #将数值转成字符串,用len求出长度,在将其顺序倒置,形成回文
	reverse=[]
	for i in range(len(s)):
		reverse.append(s[-i-1])
	def char2num(L):
		return {'0':0,
		'1':1,'2':2,'3':3,
		'4':4,'5':5,'6':6,
		'7':7,'8':8,'9':9}[L]
	rev=reduce(lambda x,y:x*10+y,map(char2num,reverse))
	return rev%n==0
#**********第二种方法***********************
def is_palindrome2(n):
	rn=[]
	i=n
	while i>0:
		rn.append(i%10)  #这两个顺序一定给要注意,迭代除10求余恰好使数字倒置
		i=i//10
	reverse=reduce(lambda x,y:x*10+y,rn )
	print('rn=',rn)
	print('n=',n)
	print('reverse=',reverse)
	return reverse%n==0	
#**********************************************
output=list(filter(is_palindrome,range(1,100)))
print(output)
output2=list(filter(is_palindrome2,range(1,100)))
print(output2)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值