欢迎光临
我们一直在努力

制造回文数

"""
若一个数从左到右读与从右到左读都是一样,这个数就叫做回文数。例如,13731
给定一个正整数,把它的每一个位上的数字倒过来排列组成一个新数,然后与原数相加。
如果是回文数则停止,如果不是,则重复这个操作,直到和为回文数为止。
例如:87,步骤如下:
STEP1:87+78=165
STEP2:165+561=726
STEP3:726+627=1353
STEP4: 1353+3531=4884
实现以上过程,求出得到回文数和经过的步数。

"""


def check(x):
"""
检查一个数是否为回文数。

参数:
x - 任意类型的输入,将被转换为字符串进行检查。

返回值:
布尔值,如果输入的数是回文数则返回True,否则返回False
"""
x = str(x) # 将输入转换为字符串形式
for i in range(len(x) // 2): # 遍历字符串的一半长度
if x[i] != x[-i - 1]: # 如果任意一对对称字符不相等,则不是回文数
return False
return True


def gen(n):
"""
生成大于等于输入n的下一个回文数,并统计生成过程中的步数。

参数:
n - 整数,起始值,生成的回文数将大于等于此数。

返回值:
无,直接打印生成的回文数和过程中的步数。
"""
count = 0 # 记录生成回文数所需的步数
while not check(n): # 循环直到找到一个回文数
count += 1 # 步数加一
n_re = int(str(n)[::-1]) # 将当前数反转并转换回整数
n += n_re # 更新n为原数加上反转后的数
print(f'生成的回文数:{n}') # 打印最终的回文数
print(f'经过{count}步。') # 打印生成所需的步数


number = 89
gen(number) # 调用函数,以89为起始值生成下一个回文数
赞(0) 打赏
未经允许不得转载:创想未来 » 制造回文数

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册