int func(a,b,c){
if(a==b)
return;
func(a,c,b); // <-- 1
func(a,b,c); // <-- 2
}
我使用递归函数。我想知道递归1和2如何工作?这意味着当第二次递归开始工作时,它们之间是如何发生交互的?
答案 0 :(得分:1)
如果没有示例输入值,就不可能知道结果是什么。
func 是 一个递归,因为它自己调用(func()调用func())。
但是它有很大的问题,因为它可以很容易地循环。
除非可以证明它是有限循环,否则正确的递归函数也会计算其递归并退出任意高数。
答案 1 :(得分:0)
呼叫#2永远不会被执行。调用#1将始终调用新函数创建新范围并逐行执行,直到它到达调用#1并且该过程再次开始。