2016-10-18 2 views
0

저는 처음 Java 과정에 대한 과제를 진행하고 있으며이 문제에 완전히 걸려 있습니다.배열에서 숫자 쌍의 차이의 합 - Java

배열에있는 숫자 쌍의 차이의 합계를 계산하는 프로그램을 작성하십시오. 예를 들어 배열이 [2, 3, 7, 8, 9, 12] 인 경우 쌍의 차이의 합은 (2-3) + (7-8) + (9-12) **입니다. 내장 Java 기능을 사용할 수 없습니다. 여기

내가 (내가 끔찍한 알고)

public static void main(String[] args) 
    { 
     int[] A = {3, 4, 5, 6, 1, 2}; 
     int total = 0; 
     int sum = 0; 
     for(int i = 0; i < A.length; i++) 
     { 
      for(int j = i+1; j < A.length; j++) 
      sum = (A[i] - A[j]); 

     } 
     System.out.println(sum); 
    } 
} 

답변

0

난 당신이 정확하게에 붙어 있지만 합계를 추가하지 않는 것 같습니다 무엇인지 잘 모르겠습니다 .. 지금까지있는 것입니다.

public static void main(String[] args) 
{ 
    int[] A = {3, 4, 5, 6, 1, 2}; 
    int total = 0; 
    int sum = 0,i=0; 
    while(i<A.length){ 
     sum+= (A[i] - A[i++]); 
} 
    System.out.println(sum); 
} 
1

당신은 중첩주기 당신이하고있는 것을 사용하는 경우 : A[j + 1]의 배열이 A[i]의 차이를 만들고있어 A[i]의 각 값에 모든 값을 의미

i = 0, 
j = 1, 
sum = 3 - 4; 
// next cycle, 
i = 0, 
j = 2, 
sum = 3 - 5; 
// etc..., 
i = 1, 
j = 2, 
sum = 4 - 5, 
// etc..; 

. 또한 sum 변수를 업데이트하지 않습니다. sum = A[i] - A[i + 1]을 할 때이 작업은 변수 합계에 새로운 값만 제공하기 때문에 발생합니다. 원하는 내용은 sum+= value이며 sum = sum + newValue (newValue = A[i] - A[i +1])을 의미합니다. 이 작업은 sum에 저장된 이전 값에 새 값을 추가합니다. 그래서 두 값을 더하고 2 개의 인덱스 (i+=2)를 점프하면 3-4, 4-5, 5-6 등을하지 않아도됩니다. 원하는 것은 3-4, 5-6 등
시험해보기 :

public static void main(String[] args) 
{ 
    int[] A = {3, 4, 5, 6, 1, 2}; 
    int total = 0; 
    int sum = 0; 
    for(int i = 0; i < A.length; i+=2) 
    { 
     sum +=(A[i] - A[i + 1]); 
    } 
    System.out.println(sum); 
    } 
}