여기에 제 테스트 나누기 및 정복 프로그램이 있지만 오류가 발생합니다. 나는 올바른 방향으로 나아갈 것입니까? 여기 간단한 나누기 및 정복 예
public class getSum {
static int sum = 0;
public static void main(String[] args) {
int[] numbers = {2,2,2,2,2,2,2,2};
int amount = 0;
amount = sumArray(0,numbers.length,numbers);
System.out.print(amount);
}
public static int sumArray(int first, int last, int[] A){
int index = last - first;
if(index == 1){
return sum;
}else if(index <= 4 && index > 1){
for(int i = first; first < last; i++){
sum += A[i];
}
return sum;
}
return (sumArray(first, last/2, A) + sumArray(last/2, A.length, A));
}
}
내가 배열을 복용하는 간단한 예제를 찾고 있어요 getSum.sumArray (getSum.java:16)에서 "주"스레드에서 오류 예외 java.lang.StackOverflowError의
입니다 16을 빼고 기본 케이스 4로 분해합니다. 배열을 침식하는 방법을 완전히 이해하는 데 문제가 있습니다. 그런 다음 다시 분할합니다. 마지막에 모든 분할을 결합하십시오.
특정 언어? –
C++, java 또는 그와 유사한 것. 나는 단지 이해가 필요합니다. – shinjuo