自学编程Python日更成长营

自学Python:回文数的形成

2022-03-11  本文已影响0人  小强聊成长

什么是回文数?

回文数是指这个数无论从左向右读还是从右向左读都是一样的,如121、11等。

任取一个十进制正整数,将其倒过来后与原来的正整数相加,会得到一个新的正整数,重复以上步骤,则最终可得到一个回文数。

那么问题来了,请用Python程序验证。

下面直接上代码:

########################

def reverse(a):# 求反序数

    t = 0

    while a > 0:

        t = t * 10 + a % 10 # t中存放的是a的反序数

        a //= 10

    return t

def palindrome(s):# 判断是否为回文数

    if (reverse(s) == s):  # 调用reverse()函数判断变量s是否与其反序数相等

        return 1  # s是回文数则返回1

    else:

        return 0    # s不是回文数则返回0

if __name__ == '__main__':

    n = int(input("请输入一个正整数:"))

    print("回文数的产生过程如下:")

    count = 0

    m = reverse(n)

    while (palindrome(m + n) == 0): # 判断当前的整数n是否为回文数

        count += 1

        print("[%d]:%d+%d=%d " % (count, n, m, m + n))  # 打印操作步骤

        n += m  # n加上其反序数

        m = reverse(n)

    count += 1

    print("[%d]:%d+%d=%d\n" % (count, n, m, m + n))

########################

执行结果如下:

请输入一个正整数:678

回文数的产生过程如下:

[1]:678+876=1554

[2]:1554+4551=6105

[3]:6105+5016=11121

[4]:11121+12111=23232

________________END______________

上一篇 下一篇

猜你喜欢

热点阅读