下一个回文数

时间:2018-12-29 04:46:19

标签: python-3.x palindrome

我想要函数返回的最终数字,下面的代码正在运行,但是没有返回正确的值,正确的值是由上面的print语句打印出来的,返回满足,该如何返回? 正确的答案是22,但是打印的内容太多13。

def palindrome(num):
    num = num+1
    num = str(num)
    if num[::-1]!=num:
        palindrome(int(num))
    else:
        print(int(num))
    return int(num)

palindrome(12)

>RESULT---
22
13

3 个答案:

答案 0 :(得分:0)

您的递归函数返回13,因为这是对函数的第一次调用的结果。递归的其他迭代都丢失了,因为您没有将其保存在对palindrome的递归调用中。

您还希望将通话设置为palindrome作为回电:

if num[::-1] != num:
    return palindrome(int(num))

答案 1 :(得分:0)

似乎可以用更好的方法来完成。

def palindrome(num):
    if str(num) == str(num)[::-1]:
        print(num)
        return num
    else:
        palindrome(num+1)

答案 2 :(得分:0)

a = int(input("enter the no. of choices"))

for i in range(a):
    b = int(input("enter all no."))

    for j in range(b , 10000000000000000):
        count = 0
        pal = str(j)
        b += 1
        if (pal == pal[::-1]):
            print(j)
            break 
        else:
            continue