Я написал следующую программу, чтобы найти сумму всех целых чисел, используя алгоритм рекурсии «разделяй и властвуй» в Java:
Но как-то сумма получается неверно.
public class DivideAndConquerSum {
public static void main(String[] args) {
int[] arr = new int[]{2, 3, 4, 5};
System.out.println(calculateRecursiveSum(arr, 0, arr.length));
}
static long sum = 0;
static long calculateRecursiveSum(int[] arr, int low, int high) {
if (high == low) {
return arr[0];
} else {
int mid = (high + low) / 2;
sum = calculateRecursiveSum(arr, low, mid) +
calculateRecursiveSum(arr, mid + 1, high);
}
return sum;
}
}
Может Кто-нибудь, пожалуйста, дайте мне знать, что не так в коде, чтобы решить это? Предполагая только положительные целые числа в этом сценарии.