在递归中,如何识别计算应该在递归调用之前或递归调用之后进行?
例如
// code for calculation and then recursion call
boolean xyz()
{
x = xyz();
if(x ==c ondition)
return true;
}
// Code for recursion call then calculation
boolean xyz()
{
if(x == condition)
return true;
xyz();
}
在许多树问题中,我观察到了这种情况,但无法理解它的工作原理以及何时使用请提供建议
答案 0 :(得分:1)
我认为基本结构为"如果我们已达到底部,则返回基值,否则更深。"
void xyz()
{
if(x==condition)
{
return some_base_value;
}
else
{
return xyz();
}
}
以下是经典阶乘函数的示例:
long factorial(int n)
{
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}