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