섹션 11을 보면 4에 A(1)=0 이라고 되어 있는데 ..
문제와 앞에 예시 글들을 보면
A 라는 배열에는 입력되는 12자리의 값들이 나란히 배열로 입력되어 있는 것이고
B 라는 배열에는 입력되었던 12자리의 값들의 합을 다시 나란히 배열로 출력 하는 것 일텐데,
그렇다면 A(1) =0 이 아니라 B(1)=0 이 되어야 맞는 것 아닌가요 ??
애초에 12자리를 입력을 받았다고 가정을 하면 A(1) 에는 어떠한 값이든 자리를 하고 있을건데
예를 들어
999,999,999,999 라는 값이 A 라는 배열에 들어있다면 A(1) 은 9 아닌가요 ?
그런데 어떻게 A(1) 라는것이 0 이라면 이라는 조건이 달려 있는것인지
이해를 할수가 없네요.
분명 예시 에서는 A 라는 배열엔 5자리의 숫자 들을 입력 받아서
그 합들을 B 라는 배열에 저장 시키고
자리 올림수가 발생 할수 있기에 B 라는 배열을 6 으로 지정하여
A(5) , B(6) 으로 예시를 나타 내었고
B(1) 의 초기값은 자리 올림수가 아직 발생하지 않아 0 으로 된 것으로 예시를
나타낸것 같은데
정작 문제들에서는 B 가 아닌 A(1) =0 이라면~ 조건을 걸어놓앗죠..
이해가 가지 않습니다.
안녕하세요.
해당 알고리즘은 12자리의 값을 입력받아 처리하는 것입니다.
입력받을 때는 12자리를 각각 입력 받습니다.
예를 들어
먼저 첫 번째 값을 입력받습니다.
첫번째 값은 999,999,999,999가 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 9
A(2) = 9
.
.
A(11) = 9
A(12) = 9
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 9
B(4) = 9
.
.
B(13) = 9
B(14) = 9
그리고 두 번째 값을 입력받습니다.
두번째 값은 888,888,888,888이 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 8
A(2) = 8
.
.
A(11) = 8
A(12) = 8
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 17
B(4) = 17
.
.
B(13) = 17
B(14) = 17
그리고 세 번째 값을 입력받습니다.
세번째 값은 777,777,777,777이 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 7
A(2) = 7
.
.
A(11) = 7
A(12) = 7
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 24
B(4) = 24
.
.
B(13) = 24
B(14) = 24
그리고 이젠 더이상 값을 입력하지 않고 처리를 요구하기 위해
사용자가 0을 입력합니다.
이렇게 의도적으로 배열의 첫번째 값에 0을 입력하면 입력을 완료하고 이제 큰 수 더하는 실제 처리를 하게 되는 것이죠.
즉
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 0
A(2) = <- 여기 부터는 0을 입력하든 값을 입력하지 않고 엔터를 치든 관계가 없습니다.
어차피 A(1)의 값이 0인지 여부에 의해 결정되기 때문이죠.
12자리가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이므로 아래쪽으로 진행하여 실제 처리를 하게 되는 것입니다.
오늘도 즐거운 하루 되세요.
-
*2016-03-31 09:45:53
안녕하세요.
해당 알고리즘은 12자리의 값을 입력받아 처리하는 것입니다.
입력받을 때는 12자리를 각각 입력 받습니다.
예를 들어
먼저 첫 번째 값을 입력받습니다.
첫번째 값은 999,999,999,999가 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 9
A(2) = 9
.
.
A(11) = 9
A(12) = 9
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 9
B(4) = 9
.
.
B(13) = 9
B(14) = 9
그리고 두 번째 값을 입력받습니다.
두번째 값은 888,888,888,888이 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 8
A(2) = 8
.
.
A(11) = 8
A(12) = 8
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 17
B(4) = 17
.
.
B(13) = 17
B(14) = 17
그리고 세 번째 값을 입력받습니다.
세번째 값은 777,777,777,777이 입력된다고 가정하면
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 7
A(2) = 7
.
.
A(11) = 7
A(12) = 7
가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이 아니므로 오른쪽 반복문으로 누적합니다.
B(3) = 24
B(4) = 24
.
.
B(13) = 24
B(14) = 24
그리고 이젠 더이상 값을 입력하지 않고 처리를 요구하기 위해
사용자가 0을 입력합니다.
이렇게 의도적으로 배열의 첫번째 값에 0을 입력하면 입력을 완료하고 이제 큰 수 더하는 실제 처리를 하게 되는 것이죠.
즉
한 자리씩 12번 입력 받으므로
반복문에 의해
A(1) = 0
A(2) = <- 여기 부터는 0을 입력하든 값을 입력하지 않고 엔터를 치든 관계가 없습니다.
어차피 A(1)의 값이 0인지 여부에 의해 결정되기 때문이죠.
12자리가 입력된 후 반복문을 빠져나와
A(1)이 0인지 확인합니다. 0이므로 아래쪽으로 진행하여 실제 처리를 하게 되는 것입니다.
오늘도 즐거운 하루 되세요.