【练习题】有 3 个回文数字,第一个是两位数,第二个是三位数。将这两个数字相加得到第三个数字,这是个四位数。请问第三个数字是多少?



#判断回文数

def is_huiwen(x):
    if x>=1 and x<10:
        return True
    else:
        is_f=1
        x_t=x
        num=0
        if x_t%10==0:
            is_f=0
        if is_f==0:
            return False
        while x_t!=0:
            num=num*10+x_t%10
            x_t=x_t/10

        if num==x:
            return True
        else:
            return False


#生成(10,100)回文数的列表
list1=[i for i in range(10,100)]
j=0
while True:
    if j>=len(list1):
        break
    if not(is_huiwen(list1[j])):
        del list1[j]
    else:
        j+=1

#生成(100,1000)回文数的列表

list2=[i for i in range(100,1000)]
j=0
while True:
    if j>=len(list2):
        break
    if not(is_huiwen(list2[j])):
        del list2[j]
    else:
        j+=1

#生成(1000,10000)回文数的列表

list3=[i for i in range(1000,10000)]
j=0
while True:
    if j>=len(list3):
        break
    if not(is_huiwen(list3[j])):
        del list3[j]
    else:
        j+=1


#得到三个数的结果
k=1
while k:
    o = random.sample(list1,1)
    p = random.sample(list2,1)
    q = random.sample(list3,1)
   
    qian=o
    zhong=p
    hou=q
    math_qian=eval(str(qian[0]))
    math_zhong=eval(str(zhong[0]))
    math_hou=eval(str(hou[0]))
   
    k=math_qian+math_zhong-math_hou
       
print qian,zhong,hou

你可能感兴趣的:(python)