我是Python的新手。由于某些我无法弄清楚的奇怪原因,该递归程序往往无法运行。任何帮助将不胜感激

时间:2020-04-04 18:08:20

标签: python python-3.x recursion

该程序应该接受一个数字,然后找到相反的数字。如果该数字是回文,则会打印该数字。如果该数字不是回文,则将数字加反,然后再次检查回文。而且这种情况一直在发生,这也表明最终结果应该是回文。 这是代码:

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))

1 个答案:

答案 0 :(得分:0)

如果打印 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))