이중for문에서 처음시작하는게 numAry[4]+=numAry[4]인데 왜 j와 i가 4인경우는 구하지 않는건가요?
j |
i |
numAry[j] |
numAry[i] |
배열 |
4 |
4 |
3 |
3 |
0 0 0 0 6 |
3 |
4 |
0 |
6 |
0 0 0 6 6 |
|
3 |
6 |
6 |
0 0 0 12 6 |
2 |
4 |
0 |
6 |
0 0 6 12 6 |
|
3 |
6 |
12 |
0 0 18 12 6 |
|
2 |
18 |
18 |
0 0 36 12 6 |
1 |
4 |
0 |
6 |
0 6 36 12 6 |
|
3 |
6 |
12 |
0 18 36 12 6 |
|
2 |
18 |
36 |
0 54 36 12 6 |
|
1 |
54 |
54 |
0 108 36 12 6 |
0 |
4 |
0 |
6 |
6 108 36 12 6 |
|
3 |
12 |
12 |
18 108 36 12 6 |
|
2 |
18 |
36 |
54 108 36 12 6 |
|
1 |
54 |
108 |
162 108 36 12 6 |
|
0 |
162 |
162 |
324 108 36 12 6 |
제가 생각할때는 이런식으로 돼야 맞는것같은데 뭐가 잘못된건지 알수 있을까요?
안녕하세요.
첫 번째 for문에서
j는 초기값 4를 가지고 종료 기준값인 j>=0 조건을 확인합니다.
j가 4이므로 조건을 만족하여 for문을 진입합니다.
두 번째 for문에서
i는 초기값 4를 가지고 종료 기준값인 i>j 조건을 확인합니다.
i와 j가 모두 4이므로 i>j 조건을 만족하지 않아
반복문을 진입하지 못하고 빠져나와 위쪽 반복문을 다시 수행합니다.
j는 1 감소하여 3이 된 상태에서 j>=0 조건을 만족하므로 for문을 진입합니다.
i는 초기값 4를 가지고 i>j 조건을 확인합니다.
i는 4이고 j는 3이므로 조건을 만족하여 for문을 진입합니다.
numAry[j] += numAry[i] 를 수행합니다.
numAry[3] += numAry[4]를 수행하여 numAry[3]에 numAry[4]의 값 3을 누적합니다.
위와 같이 진행되는데, for문에서 초기값 지정 후 바로 종료 기준값을 비교하는 과정으로 수행되므로
j가 4이고 i가 4일 때 안쪽 반복이 수행되지 않습니다.
오늘도 즐거운 하루 되세요.
-
*2018-03-07 09:34:30
안녕하세요.
첫 번째 for문에서
j는 초기값 4를 가지고 종료 기준값인 j>=0 조건을 확인합니다.
j가 4이므로 조건을 만족하여 for문을 진입합니다.
두 번째 for문에서
i는 초기값 4를 가지고 종료 기준값인 i>j 조건을 확인합니다.
i와 j가 모두 4이므로 i>j 조건을 만족하지 않아
반복문을 진입하지 못하고 빠져나와 위쪽 반복문을 다시 수행합니다.
j는 1 감소하여 3이 된 상태에서 j>=0 조건을 만족하므로 for문을 진입합니다.
i는 초기값 4를 가지고 i>j 조건을 확인합니다.
i는 4이고 j는 3이므로 조건을 만족하여 for문을 진입합니다.
numAry[j] += numAry[i] 를 수행합니다.
numAry[3] += numAry[4]를 수행하여 numAry[3]에 numAry[4]의 값 3을 누적합니다.
위와 같이 진행되는데, for문에서 초기값 지정 후 바로 종료 기준값을 비교하는 과정으로 수행되므로
j가 4이고 i가 4일 때 안쪽 반복이 수행되지 않습니다.
오늘도 즐거운 하루 되세요.