我想要函数返回的最终数字,下面的代码正在运行,但是没有返回正确的值,正确的值是由上面的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
答案 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