배열의 요소를 요약하려고합니다. 내 코드를 테스트 할 때 합계는 항상 하나씩 떨어져 있습니다. 예를 들어, 20, 40, 30을 입력하면 90 대신 89가됩니다. 내가 뭘 잘못하고 있는지 정확히 알지 못합니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것은 좋을 것입니다! 의 당신이 int[] A = {1}
를 합산되어 있다고 가정 해 봅시다 하고, 다음과 같이 당신의 재귀 함수 호출을 확장 :배열 합계의 재귀 오류
public static void main(String[] args){
int size = kbd.nextInt();
int [] myArray = new int [size]
//user inputs the elements of array
for(int i =0; i<myArray.length; i++){
myArray[i]= kbd.nextInt();
}
int total = sumNum(myArray,0, myArray.length-1)
System.out.println("The sum is"+ total);
}
public static int sumNum(int [] array, int begin, int end){
if(begin > last) {
return -1;
}
else {
int total = sumNum(array, begin +1, end)+ array[first];
}
}
은'반환 -1' 무엇을하고 있습니까? 배열 요소가 부족하면 실제로 총계에 영향을 미치지 않으므로 0을 반환해야합니다. – ryanyuyu
코드에 구문 오류가 많이 포함되어 있습니다. 코드를 컴파일 가능하게 만들면 문제가 해결 될 수 있습니다. 디버거와 배열의 작은 크기를 사용하여 근본 원인을 찾으십시오. – bedrin
여기에 모든 구문을 사용하지 않고 코드를 작성했습니다. 나는이 코드를 실행하고 컴파일하고있다. 난 그냥 논리 오류를 알아내는 데 도움이 필요합니다 – user3582249