1 /* 2 * 递归方法的使用 3 * 1.递归方法:一个方法体内调用它自身 4 * 2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制 5 * 递归一定要想已知方向递归,否则这种递归就变成了无穷递归,类似于死循环 6 * 7 */ 8 public class RecursionTest 9 { 10 public static void main(String[] args) 11 { 12 //例1:计算1-100之间所有自然数的和 13 int sum = 0; 14 for(int i =1; i<=100;i++) 15 { 16 sum +=i; 17 } 18 System.out.println(sum); 19 20 21 //方式二 22 RecursionTest test = new RecursionTest(); 23 int sum1 = test.getSum(100); 24 System.out.println(sum1); 25 26 //乘积 27 int sum2 = test.getSum1(100); 28 System.out.println(sum2); 29 30 int sum3= test.f(10); 31 System.out.println(sum3); 32 33 } 34 //例1:计算1-n之间所有自然数的和 35 public int getSum(int n) 36 { 37 if(n==1) 38 { 39 return 1; 40 } 41 else 42 { 43 return n +getSum(n -1); 44 } 45 } 46 47 //例2:计算1-n之间所有自然数的乘积 48 public int getSum1(int n) 49 { 50 if(n==1) 51 { 52 return 1; 53 } 54 else 55 { 56 return n *getSum(n -1); 57 } 58 } 59 60 //例3:已知有一个数列:f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n) 61 //其中n是大于0的整数,求f(10)的值 62 63 public int f(int n ) 64 { 65 if(n==0) 66 { 67 return 1; 68 } 69 else if(n==1) 70 { 71 return 4; 72 } 73 else 74 { 75 return 2*f(n-1) +f(n-2); 76 } 77 } 78 }