2017-10-19 2 views
-2

이 코드를 이해하려고합니다.중첩 루프를 사용하여 2 차원 배열 만들기

int[][] grade = { 
    { 1, 0, 1 }, 
    { 0, 1, 0 }, 
    { 1, 0, 1 } 
}; 
for (int i = 0; i < 3; i++) { 
    for (int j = 0; j < 3; j++) { 
    if (i == j) 
     System.out.print(grade[i][j] + grade[j][i] + " "); 
    else 
     System.out.print(grade[i][j] * grade[j][i] + " "); 
    } 
    System.out.println(" "); 
} 

나는 행과 열인 2 차원 배열의 논리를 잘 알고 있습니다. 나는 그 대답이 어떻게 왔는지 이해하지 못한다.

2 0 1 
0 2 0 
1 0 2 
+0

은 무엇입니까 2

입력으로

당신은 [1] [3] 2, 모든 모서리가 출력 될 것 등급을 변경 한 경우 그것에 대해 당신이 이해하지 못했습니까? 입력이 0과 1이고 피연산자가 +와 * 인 경우 출력 0, 1 및 2 만 얻을 수 있음을 분명히해야합니다. –

답변

0

2 차원 배열을 반복합니다. i가 j와 같으면 (예 : (0,0 1,1,2,2)) 등급 [j] [i]의 등급 [i] [j]를 추가합니다. i와 j는 동일하므로 위치 자체를 추가합니다.

i가 j와 같지 않은 경우 등급 [i] [j]에 등급 [j] [i]를 곱합니다.

등가가 아니기 때문에 그리드에서 2 개의 다른 위치를 곱합니다. 예 :

등급 [3] [1]은 그 자체로가 아니라 등급 [1] [3]을 곱합니다.

1 0 2 
0 1 0 
1 0 1 

출력과 같습니다 :

2 0 2 
0 2 0 
2 0 2 
-1

그것은 기본적으로 이차원 어레이를 순환하고 본다면 열과 행 번호 (i와 j)이 동일한 지 그 자체를 추가 할 것이다. 즉 대각선에 2 배를 곱한다. 그리고 나머지 엔트리에서는 그 자체로 번식 할 것입니다.

관련 문제