Recursion 递归理解

Recursion 递归理解,recursion,Recursion,在递归中,如何识别递归调用前或递归调用后应进行的计算 e、 g 在许多树问题中,我观察到了这种情况,但无法理解它是如何工作的,以及何时使用请提供的建议。我认为基本结构是“如果我们已经到达底部,返回一个基本值,否则就更深入。” 下面是一个经典阶乘函数的示例: long factorial(int n) { if (n == 0) return 1; else return(n * factorial(n-1)); } 我想问很多次,在递归调用函数之后,我们有先决条件或后决

在递归中,如何识别递归调用前或递归调用后应进行的计算

e、 g


在许多树问题中,我观察到了这种情况,但无法理解它是如何工作的,以及何时使用请提供的建议。我认为基本结构是“如果我们已经到达底部,返回一个基本值,否则就更深入。”

下面是一个经典阶乘函数的示例:

long factorial(int n)
{
  if (n == 0)
    return 1;
  else
    return(n * factorial(n-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));
}