问题描述
反序数,即有这样成对的数,其特点是其中一个数的数字排列顺序完全颠倒过来,就变成另一个数,如102和201,36和63等,简单的理解就是顺序相反的两个数,我们把这种成对的数互称为反序数。反序数唯一不可能出现以0结尾的数。
一个3位数各位上的数字都不相同,它和它的反序数的乘积是280021,这个3位数应是多少?
代码
def revernum(n):
b=str(n)
a=[int(j) for j in b] #把各位数字取出来放到列表里,int(j)以整数而非字符形式保存
x=reduce(lambda x, y: x*10+y, a[::-1]) #用reduce函数,算出反序数,a[::-1]--->从后往前取
return x
for i in range(100,999):
m=revernum(i)
if m*i==280021:
print i
#结果
367
763