我被要求编写一个函数generate_palindrome(),它采用给定的正整数n并将以下过程应用于它:
(i) 检查号码是否为回文。如果是,则返回它,否则继续下一步。
(ii) 倒数并计算原数与倒数的和。
(iii) 从 (i) 重复(直到找到回文。)
我写了这个函数:
def generate_palindrome(n):
numbers = list(str(n))
for i in range(len(numbers)):
if numbers[i] == numbers[-i-1]:
return n
else:
while numbers[i] != numbers[-i-1]:
rev = list(reversed(numbers))
rev_num = int(''.join(rev))
n = n + rev_num
return n
我不知道是什么原因,当我尝试一个还不是回文的随机数时,代码没有响应,它仍在运行直到无限长的时间。我尝试用if
代码更改它,但它不会迭代我的函数,所以我认为我唯一的机会是使用while
代码,但也许我是错的人。你怎么看?