1 /** 2 * @author: kischn 3 * @date: 2015/10/28. 4 */ 5 public class ArrayTest { 6 7 /** 8 * 递归求和 9 * @param i 10 * @param arr 11 * @return 12 */ 13 public static int sum(int i, int[] arr){ 14 if(i < arr.length - 1)//返回当前的值 + 剩下的那一部分所有的和 15 return arr[i] + sum(i+1, arr); 16 else return arr[i];//只有一个了,所以只需要返回当前的 17 } 18 19 public static void main(String[] args) { 20 int[] arr = { 1,2,3,4,5}; 21 System.out.println(sum(0, arr)); 22 /** 23 * 上面的递归一层层展开后大体是这样的: 24 * 25 * arr[0] + sum(1,arr) 26 * arr[0] + arr[1] + sum(2,arr) 27 * arr[0] + arr[1] + arr[2] + sum(3, arr) 28 * arr[0] + arr[1] + arr[2] + arr[3] + sum(4, arr) 29 * arr[0] + arr[1] + arr[2] + arr[3] + arr[4] = 15 30 */ 31 } 32 //output: 15 33 }