Java实现不遍历数组求和

package com.jts.t1;

/**
 * 不遍历数组求和
 * 方法省略异常检查
 */
public class Demo1 {

    public static void main(String[] args) {
        int[] arr = {5,1,8,3,7,2,6};
        System.out.println(sum(arr, arr.length));
        System.out.println(sum2(arr));
    }
    
    /**
     * 方式一:递归,传数组长度
     * @param arr
     * @param n
     * @return
     */
    private static int sum(int arr[], int n) {
        if(n == 1) {
            return arr[0];
        }else {
            return arr[n-1] + sum(arr, --n);
        }
    }
    
    /**
     * 方式二:递归,不传数组长度
     * @param arr
     * @return
     */
    private static int sum2(int arr[]) {
        int len = arr.length;
        if(len == 1) {
            return arr[0];
        }else {
            arr[len - 2] += arr[len - 1];
            int[] tempArr = new int[len - 1];
            System.arraycopy(arr, 0, tempArr, 0, len - 1);
            return sum2(tempArr);
        }
    }
}
原文地址:https://www.cnblogs.com/juetoushan/p/7726325.html