Dan*_*Tao 13 language-agnostic recursion terminology
这是一个明显的递归函数:
function()
{
function();
}
Run Code Online (Sandbox Code Playgroud)
我们简单地称之为"递归" - 但这个(几乎没有)更复杂的版本呢?
functionLeft()
{
functionRight();
}
functionRight()
{
functionLeft();
}
Run Code Online (Sandbox Code Playgroud)
这个场景有一个术语,例如"双递归"吗?或者没有具体的术语来区分这种情况和上面的单功能案例?
Bla*_*cal 16
正如Jon Purdy所说,你给出的例子叫做"相互递归".术语"双递归"也存在,但具有不同的含义:当函数使用两个递归调用时.典型的例子是Fibonacci函数"
int Fib(int n)
{
if (n < 2) return 1;
return Fib(n-1) + Fib(n-2);
}
Run Code Online (Sandbox Code Playgroud)
Fib(n)函数以递归方式调用自身两次.