递归理解

时间:2016-04-24 02:05:24

标签: recursion

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

例如

// 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();
}

在许多树问题中,我观察到了这种情况,但无法理解它的工作原理以及何时使用请提供建议

1 个答案:

答案 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));
}