책 내용 질문하기
실기 기출문제집 2호5번문제 질문입니다
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
91
조회수
46
작성일
2017-06-21
작성자
탈퇴*원
첨부파일

답이 6 15 24 33 42 라고 하는데 디버깅만 보고는 이해가 잘 안되는 데 해설 부탁드립니다

답변
2017-06-21 10:18:15

안녕하세요.

i는 0부터 5보다 작을때까지 1씩 증가하면서 안쪽 for문을 반복합니다.

j는 0부터 5보다 작을 때까지 2씩 증가하면서 반복 수행합니다.

과정을 살펴보면

i가 0을 가지고 바깥쪽 반복문을 진입합니다.

j는 0을 가지고 안쪽 반복문을 진입합니다.

k++;에 의해 k는 1이 됩니다.

a[i] += k; 에 의해 a[0]에 k값 1이 누적됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

k++;에 의해 k는 2가 됩니다.

a[i] += k; 에 의해 a[0]에 k값 2가 누적됩니다. 기존 값에 누적되어 a[0]은 3이 됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

k++;에 의해 k는 3이 됩니다.

a[i] += k; 에 의해 a[0]에 k값 3이 누적됩니다. 기존 값에 누적되어 a[0]은 6이 됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.

바깥쪽 반복문으로 돌아가 ++i에 의해 i는 1이 증가되어 1이 됩니다. i가 5보다 작으므로 반복문을 다시 진입합니다.

j는 0을 가지고 안쪽 반복문을 진입합니다.

k++;에 의해 k는 4가 됩니다.

a[i] += k; 에 의해 a[1]에 k값 4가 누적됩니다. 기존 값에 누적되어 a[1]은 4가 됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

k++;에 의해 k는 5가 됩니다.

a[i] += k; 에 의해 a[1]에 k값 5가 누적됩니다. 기존 값에 누적되어 a[1]은 9가 됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

k++;에 의해 k는 6이 됩니다.

a[i] += k; 에 의해 a[1]에 k값 6이 누적됩니다. 기존 값에 누적되어 a[1]은 15가 됩니다.

안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.

이와 같이 반복을 수행합니다.

i가 0일 때 a[0]는 1, 3, 6을 거쳐 최종적으로 6이 저장되고

i가 1일 때 a[1]은 4, 9, 15를 거쳐 최종적으로 15가 저장되며

i가 2일 때 a[2]는 7, 15, 24를 거쳐 최종적으로 24가 저장됩니다.

이와 같이 i가 4일때까지 반복하여 디버깅 표와 같은 과정을 수행합니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-06-21 10:18:15

    안녕하세요.

    i는 0부터 5보다 작을때까지 1씩 증가하면서 안쪽 for문을 반복합니다.

    j는 0부터 5보다 작을 때까지 2씩 증가하면서 반복 수행합니다.

    과정을 살펴보면

    i가 0을 가지고 바깥쪽 반복문을 진입합니다.

    j는 0을 가지고 안쪽 반복문을 진입합니다.

    k++;에 의해 k는 1이 됩니다.

    a[i] += k; 에 의해 a[0]에 k값 1이 누적됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

    k++;에 의해 k는 2가 됩니다.

    a[i] += k; 에 의해 a[0]에 k값 2가 누적됩니다. 기존 값에 누적되어 a[0]은 3이 됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

    k++;에 의해 k는 3이 됩니다.

    a[i] += k; 에 의해 a[0]에 k값 3이 누적됩니다. 기존 값에 누적되어 a[0]은 6이 됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.

    바깥쪽 반복문으로 돌아가 ++i에 의해 i는 1이 증가되어 1이 됩니다. i가 5보다 작으므로 반복문을 다시 진입합니다.

    j는 0을 가지고 안쪽 반복문을 진입합니다.

    k++;에 의해 k는 4가 됩니다.

    a[i] += k; 에 의해 a[1]에 k값 4가 누적됩니다. 기존 값에 누적되어 a[1]은 4가 됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 2가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

    k++;에 의해 k는 5가 됩니다.

    a[i] += k; 에 의해 a[1]에 k값 5가 누적됩니다. 기존 값에 누적되어 a[1]은 9가 됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 4가 됩니다. j가 5보다 작으므로 반복문을 다시 진입합니다.

    k++;에 의해 k는 6이 됩니다.

    a[i] += k; 에 의해 a[1]에 k값 6이 누적됩니다. 기존 값에 누적되어 a[1]은 15가 됩니다.

    안쪽 반복문으로 돌아가 j +=2에 의해 j는 2가 증가되어 6이 됩니다. j가 5보다 크므로 반복문을 빠져 나갑니다.

    이와 같이 반복을 수행합니다.

    i가 0일 때 a[0]는 1, 3, 6을 거쳐 최종적으로 6이 저장되고

    i가 1일 때 a[1]은 4, 9, 15를 거쳐 최종적으로 15가 저장되며

    i가 2일 때 a[2]는 7, 15, 24를 거쳐 최종적으로 24가 저장됩니다.

    이와 같이 i가 4일때까지 반복하여 디버깅 표와 같은 과정을 수행합니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.