def collatz(a):
if a==1:
return a
elif a%2==0:
print(a//2)
collatz(a//2)
else:
print(a*3+1)
collatz(a*3+1)
a = int(input("Enter no. "))
print(collatz(a))
发布于 2021-03-21 15:09:57
首先看看Function returns None without return statement
这样,您的方法就没有什么可返回的了,因为它的目的是查看值的路径,并且stop值始终为1
def collatz(a):
print(a)
if a == 1:
return # just the stop case
elif a % 2 == 0:
collatz(a // 2)
else:
collatz(a * 3 + 1)
所以如果没有指纹,你就不会期望返回任何东西
a = int(input("Enter value:"))
collatz(a)
你甚至可以结合到
def collatz(a):
print(a)
if a % 2 == 0:
collatz(a // 2)
elif a > 1:
collatz(a * 3 + 1)
发布于 2021-03-21 15:12:10
您可以直接返回函数:
def collatz(a):
if int(a)==1:
return a
elif a%2==0:
print(a//2)
return collatz(a//2)
else:
print(a*3+1)
return collatz(a*3+1)
https://stackoverflow.com/questions/66733923
复制