weng_zh 发表于 2022-4-26 20:59

[Python]判断回文数

一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。
任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。
例如:68变成154(68+86),再变成605(154+145),最后变成1111(605+506),而1111是回文数。
不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。
输入一个正整数
输出第一行是变换的次数,第二行是变换的过程
def inverse(n):
    a = {}
    k = 0
    while n != 0:
      k += 1
      a = n % 10
      n = n // 10
    res = 0
    for i in range(1, k + 1):
      res = res * 10
      res = res + a
    return res


result = {}
x = eval(input())
cnt = 0
result = x
while x != inverse(x):
    x = x + inverse(x)
    cnt = cnt + 1
    result = x

print(cnt)
for m in range(0, cnt):
    print(result, end='>')
print(result)

JokerX 发表于 2022-4-27 00:50

咱既然用python了,可以用一点pythonic的方式吗,而不是c的思路{:301_1005:}
x = '68'
while x != x[::-1]:
    x = str(int(x) + int(x[::-1]))
    print(x)

52soft 发表于 2022-4-27 07:51

JokerX 发表于 2022-4-27 00:50
咱既然用python了,可以用一点pythonic的方式吗,而不是c的思路
x...

值得学习
页: [1]
查看完整版本: [Python]判断回文数