什么是回文数?
回文数是指这个数无论从左向右读还是从右向左读都是一样的,如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______________
网友评论