/** * 递归方法练习 * *  递归方法: 一个方法体内调用他自身 *      1 方法递归包含了一种隐式的循环,他会重复执行某段代码,但这种重复执行无需循环控制 *      2 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环 */public class Recursion {    public static void main(String[] args) {        int sum = 0;        // for循环求1-100自然数的和        for (int i = 1; i <= 100; i++) {            sum+=i;        }        System.out.println("sum = " + sum);        // 递归方法求1-100自然数的和        Recursion recursion = new Recursion();        int recursionSum = recursion.getSum(100);        System.out.println("recursionSum = " + recursionSum);        // 已知数列 f(0) = 1 f(1) = 4 f(n+2) = 2*f(n+1) + f(n) 求f(10)        int f = recursion.f(3);        System.out.println("f = " + f);    }    /**     * 求f(10)     * @param n     * @return     */    public int f(int n) {        if (n == 0 ) {            return 1;        } else if (n == 1){            return 4;        } else {            return 2 * f(n - 1) + f(n - 2);        }    }    /**     * 使用递归方法     * 求从n到1的和     * @param n     * @return     */    public int getSum(int n) {        if (n == 1) {            return 1;        } else {            return n + getSum(n - 1);        }    }}