我正试图找到下一个pallindrome号 当我在返回之前打印num时可以正确打印,但是当我返回时,它返回None
#Code starts here
def palindrome(num):
flag=1
copy = num
num =num+1
if(flag==1):
res = [int(x) for x in str(num)]
ser = [int(x) for x in str(num)]
ser.reverse()
if(res==ser):
flag = 0
print(num,type(num))
return num
else:
palindrome(num)
a = palindrome(22)
print(a)
答案 0 :(得分:-1)
由于这是一个递归函数,因此您需要确保递归完成后,将返回值并将其沿递归堆栈向上传播,这不是这里发生的情况。
为确保这种情况发生,您需要确保您的递归调用palindrome(num)
也通过执行return palindrome(num)
而返回,这应该可以解决问题
def palindrome(num):
flag=1
copy = num
num =num+1
if(flag==1):
res = [int(x) for x in str(num)]
ser = [int(x) for x in str(num)]
ser.reverse()
if(res==ser):
return num
else:
#We want to return from the recursive function as well
return palindrome(num)
输出将是
print(palindrome(46))
#55
print(palindrome(64))
#66
print(palindrome(97))
#99