在python中添加反转以前的数字以实现回文

Posted

技术标签:

【中文标题】在python中添加反转以前的数字以实现回文【英文标题】:Adding reversed previous number to achieve palindrome in python 【发布时间】:2020-09-15 21:31:00 【问题描述】:

接受一个数字作为输入并检查给定的数字是否为回文 如果是回文数,则在屏幕上打印该数字 如果不是回文数,则反转该数并将其添加到前一个数重复此操作,直到将获得一个回文数并在屏幕上打印该回文数

输入:127

输出:848

如果有人能解决这个问题,我将不胜感激:

    n = int(input())
    if str(n) == str(n)[::-1]:
        print(str(n)[::-1],"is a palindrome")
    else:

else条件下应该写什么

【问题讨论】:

【参考方案1】:

这对我有用:

n = int(input())
while True :
    if str(n) == str(n)[::-1]:
        print(str(n)[::-1],"is a palindrome")
        break
    else:
        n += int(str(n)[::-1])

【讨论】:

我需要代码 如果它不是回文号码,则反转该号码并将其添加到前一个号码重复此操作,直到将获得一个回文号码并在屏幕上打印该回文号码【参考方案2】:

一个数学解决方案 - 无需转换为字符串 - 将是

def revert(x: int) -> int:
    x = abs(x)
    r = 0
    while x:
        x, m = divmod(x, 10)
        r = r * 10 + m
    return r
def findPalindrome(x: int) -> bool:
    if x < 0:
        return 0
    r = revert(x)
    if x == r:
        return x
    else:
        return findPalindrome(x + r)

【讨论】:

以上是关于在python中添加反转以前的数字以实现回文的主要内容,如果未能解决你的问题,请参考以下文章

回文数

leetCode第七题和第九题———整数反转,回文数

回文数

如何检查一个数字是不是是回文?

华为OD机试真题 Python 实现数字反转打印

初学python100例-案例35 数字反转 少儿编程python编程实例讲解