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);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM