这里有一个理论问题,关于递归方法中的基数或停止情况,它的标准是什么?
我的意思是,没有身体,只是一个回复声明,这是正常的吗?
是否总是如下:
if (input operation value)
return sth;
Run Code Online (Sandbox Code Playgroud)
你有不同的想法吗?
小智 11
递归函数的模式是它们看起来像这样:
f( value )
if ( test value )
return value
else
return f( simplify value )
Run Code Online (Sandbox Code Playgroud)
关于一般情况,我认为你不能说太多.
基本情况是终止循环(避免成为无限递归)。基本情况没有标准,任何足够简单、可以精确解决的输入都可以作为标准。
例如,这是完全有效的:
int factorial (int n) {
if (n <= 5) {
// Not just a return statement
int x = 1;
while (n > 0) {
x *= n;
-- n;
}
return x;
} else {
return n * factorial(n-1);
}
}
Run Code Online (Sandbox Code Playgroud)