我是Python的新手。这个递归程序往往不会运行,原因我很想不通。任何帮助将不胜感激



这个程序应该接受一个数字并找到它的反面。如果这个数字是一个回文,它就会打印出这个数字。如果数字不是回文的,它会将数字添加到其反向,然后再次检查回文。这种情况不断发生,也说明最终结果应该是回文。这是代码:

num = int(input("Enter a number: "))
def palindromeConverter(n):
m = n
rev = 0
while(n>0):
rev = (rev*10) + (n%10)
n = n/10
if(rev==m):
return rev
else:
return palindromeConverter(rev+m)
print(palindromeConverter(num))

如果打印n,您将看到您的脚本无限运行。while循环永远不会结束

while(n>0):
rev = (rev*10) + (n%10)
n = n/10
print(n)

编辑:

在我搜索了一些例子后,我认为你的n=n/10除法是错误的。它应该是楼层划分n=n//10

如果你这样更改它,它运行良好:

num = int(input("Enter a number: "))
def palindromeConverter(n):
m = n
rev = 0
while(n>0):
rev = (rev*10) + (n%10)
n = n//10
if(rev==m):
return rev
else:
return palindromeConverter(rev+m)
print(palindromeConverter(num))

最新更新