递归算法-recursion

程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。递归有直接递归间接递归

直接递归:函数在执行过程中调用本身。
间接递归:函数在执行过程中调用其它函数再经过这些函数调用本身。

递归算法解决问题的特点:
  (1) 递归就是在过程或函数里调用自身。
  (2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
  (3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
  (4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。

【累加】
public static long total(int i) {
        if (1 == i) {
            return i;
        } else {
            return total(i – 1) + i;
        }
    }
【累积】
    public static long accumulate(int i) {
        if (1 == i) {
            return i;
        } else {
            return accumulate(i – 1) * i;
        }
    }

    原文作者:递归算法
    原文地址: https://blog.csdn.net/Simon_YDS/article/details/51277038
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞