+ -
当前位置:首页 → 问答吧 → 递归

递归

时间:2011-12-21

来源:互联网

相信学习过编程的都多少知道递归,这里想请大家畅所欲言的谈谈自己对递归的理解,可以是一段代码,也可以举些简单的例子.话题比较宽泛.

作者: Yico_Gaga   发布时间: 2011-12-21

“给定一个小点的输入,完整单步跟踪一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

作者: zhao4zhong1   发布时间: 2011-12-21

递归就是一个依赖吧,想完成这一步,得先完成上一步

作者: yuzhenhua001   发布时间: 2011-12-21

C/C++ code

//例如求n!

int fun(int n)
{
   if(n==1 || n==0)
      return 1;
    return fun(n-1)*n;
}

作者: elegant87   发布时间: 2011-12-21

调用自身

作者: yimingxinshou   发布时间: 2011-12-21

递归就是不断的反推,最后得出结论。

作者: naletive   发布时间: 2011-12-21

递归利用了对同一函数的多次调用,每次都创建一个自己专属的 stack frame

作者: AnYidan   发布时间: 2011-12-22

顶一楼
我觉得最重要的有两点:
终止条件,全局/局部变量

对递归进行debug的时候,不要试图以一步一步地跟踪地方式来查找错误,多站在所表达的逻辑的角度来看问题,递归出错肯定是逻辑有问题

作者: miejiang   发布时间: 2011-12-26