递归

例如1:

  1到10的累加 = 55

public class Recursion1 {
    public static void main(String[] args) {
        System.out.println(f(10));
    }
    static long f(int n){
        if(n<1){
            return -1;
        }
        if (n==1){
            return 1;
        }
        return n+f(n-1);
    }
}

能采用递归所描述的算法通常具有这样的特征:为求解规模为N的问题,设法将它分解成一些规模较小的问题,然后从这些小问题的解方便地构造出大问题地解,并且这些规模较小地问题也能采用同样地分解和综合方法,分解成规模更小地问题。并从这些更小问题地解构造出规模稍大问题地解,当规模N=1时,能直接得到解。

    递归算法设计,就是把一个大型复杂地问题层层转化为一个与原问题相似地规模较小地问题,,在逐步求解小问题后,在返回得到大问题的解。

    递归的关键在于找出递归关系和递归终止条件。

原文地址:https://www.cnblogs.com/huan30/p/12838344.html