编辑代码

#include <iostream>
#include <vector>
using namespace std;

// 农民分土地问题
int divideToSquare(int length, int width) {
    if (length % width == 0) {
       return width;
    }

    return divideToSquare(width, length % width);
}

int divideToSquareIter(int length, int width) {
    int w = length % width;

    while(w > 0) {
        length = width;
        width = w;
        w = length % width;
    }

    return width;
}

// 数组累加
int recursiveSum(vector<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;
}

int iterativeSum(vector<int>& arr) {
    int n = arr.size();
    int sum = 0;

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

    return sum;
}


int main() {
    // 农民分土地问题
    cout << "The length of square for rectangle(1680, 640) is " << divideToSquare(1680, 640) << endl;
    cout << "The length of square for rectangle(1680, 640) is " << divideToSquareIter(1680, 640) << endl;

    // 数组累加
    vector<int> arr1 = {1, 2, 3, 4, 5};
    int sum1 = recursiveSum(arr1, 0, arr1.size() - 1);
    cout << "Recursive Sum1: " << sum1 << endl;

    vector<int> arr2 = {1, 2, 3, 4, 5};
    int sum2 = iterativeSum(arr2);
    cout << "Iterative Sum2: " << sum2 << endl;

    return 0;
}