在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中添加反转以前的数字以实现回文的主要内容,如果未能解决你的问题,请参考以下文章