下一个回文数

Next Palindrome number

我想要函数 return 编辑的最终数字,下面的代码是 运行,但不是 return 正确的值,正确的值由print语句上面的return语句,怎么能return呢?? 正确答案是 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

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

的递归调用中

您需要将呼叫设置为 palindrome 作为您的 return:

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

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

def palindrome(num):
    if str(num) == str(num)[::-1]:
        print(num)
        return num
    else:
        palindrome(num+1)
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