在使用递归函数时,是否会出现递归调用次数过多发生堆栈溢出的情况?
出现了又该如何解决?

解决方案 »

  1.   

    递归转换为迭代是非常形式化、比较简单的。主要有两方面:1. 为递归非常简单就可以改变为迭代,只要用赋值语句修改入口变量值,然后重新goto到开始就可以了。
    2. 不是尾递归,通过加入一个收集器变量,稍加修改及条语句,通常就可以将自顶向下递归改为自底向上收集,递归到迭代的改动的代码很少。而如果是使用c#,它就支持“迭代器”功能,这个功能可以自动将递归转换为迭代。
      

  2.   

    会的 如果递归次数多了  会溢出的
    而且递归是多次的函数调用 非常慢
    最好是用for 语句来实现