编辑代码

class Main {
	public static void main(String[] args) {
        System.out.println(divideToSquare(1680, 640));
        System.out.println(divideToSquare(640, 1680));

        int[] arr1 = new int[]{1,2,3,4,5};
        int sum1 = recursiveSum(arr1, 0, arr1.length - 1);

        System.out.println(sum1);

        int[] arr2 = new int[]{1,2,3,4,5};
        int sum2 = iterativeSum(arr2);
        System.out.println(sum2);
	}
    public static int divideToSquare(int length, int width) {
        if (length % width == 0) {
            return width;
        }
        return divideToSquare(width, length % width);
    }

    public static int divideToSquareIter(int length, int width) {
        int w = length % width;
        while(w > 0) {
            length = width;
            width = w;
            w = length % width;
        }

        return width;
    }

    // 数组累加
    public static int recursiveSum(int[] arr, int start, int end) {
        if (start == end) {
            return arr[start];
        }

        int mid = (start + end) / 2;
        int leftSum = recursiveSum(arr, start, mid);
        int rightSum = recursiveSum(arr, mid + 1, end);

        return leftSum + rightSum;
    }

    public static int iterativeSum(int[] arr) {
        int n = arr.length;
        int sum = 0;

        for (int i = 0; i < n; ++i) {
            sum += arr[i];
        }

        return sum;
    }
}