public class LandDivision {
public static int divideLandRecursive(int[] land, int start, int end) {
if (start == end) {
return land[start];
}
int mid = (start + end) / 2;
int leftSum = divideLandRecursive(land, start, mid);
int rightSum = divideLandRecursive(land, mid + 1, end);
return leftSum + rightSum;
}
public static int divideLandIterative(int[] land) {
int sum = 0;
for (int i = 0; i < land.length; i++) {
sum += land[i];
}
return sum;
}
public static void main(String[] args) {
int[] land = {10, 20, 30, 40, 50};
int n = land.length;
int recursiveResult = divideLandRecursive(land, 0, n - 1);
System.out.println("递归实现:总土地面积为 " + recursiveResult);
int iterativeResult = divideLandIterative(land);
System.out.println("递推实现:总土地面积为 " + iterativeResult);
}
}