/** * 递归方法练习 * * 递归方法: 一个方法体内调用他自身 * 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); } }}