我写了一个递归函数来解决Tower Hopper Problem
。
可以在https://www.youtube.com/watch?v=kHWy5nEfRIQ
上找到此问题的链接。
解决方案工作正常,但是返回值时我遇到了问题。
这是我的代码:
towers = [4,2,0,0,2,0]
def tower_hopper(towers,i):
if i >= len(towers):
print('yes')
return 1
elif towers[i] == 0:
return 0
else:
for j in range(1,towers[i]+1):
tower_hopper(towers, i+j)
print (tower_hopper(towers,0))
该代码正确打印了yes
,但是没有返回1
。
我尝试在return tower_hopper(towers, i+j)
内执行for loop
,但是它没有按预期工作。我看到了针对if
条件的解决方案,但是没有针对for loop
的条件。在执行for循环时,只要返回第一个0,函数调用就会在此结束,并且不会执行剩余的循环。