我写了这段代码来理解某种算法。但我仍然不知道递归是如何在这里工作的。任何人都可以向我解释一下。我理解输出直到它第一次打印的第5行"它来到这里",但在那之后它对我来说有点混乱。 代码:
def empty(n):
print("recur ",n)
if(n==1):
print("end")
return(0)
empty(n-1)
print("It got here")
empty(n-1)
当我调用此函数时
empty(3)
这是我得到的输出
recur 3
recur 2
recur 1
end
It got here
recur 1
end
It got here
recur 2
recur 1
end
It got here
recur 1
end
答案 0 :(得分:0)
每个函数调用都会执行以下操作:
如果用空行分隔这些输出块,它看起来像这样:
recur 3
recur 2
recur 1
end
It got there
recur 1
end
It got there
recur 2
recur 1
end
It got there
recur 1
end
以下块出现了2次:
recur 2
recur 1
end
It got there
recur 1
end
它以同样的方式构建:
recur 2
recur 1
end
It got there
recur 1
end
使用缩进可视化递归深度时,输出可能如下所示:
recur 3
recur 2
recur 1
end
It got there
recur 1
end
It got there
recur 2
recur 1
end
It got there
recur 1
end