책 내용 질문하기
76쪽3번문제
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
76,3
조회수
289
작성일
2019-05-09
작성자
탈퇴*원
풀이를 봐도 7이란 숫자가 왜 나오는지 잘 모르겠습니다 좀 도와주세요
답변
2019-05-09 13:10:17

안녕하세요 길벗수험서 운영팀입니다.

 

교재 483쪽을 기준으로 설명드리겠습니다.

 

처음 while문에 진입하여 3번을 만나면 i가 9인 상태에서 4번, 5번을 수행합니다.

9%3은 0이므로 hap+=i 를 수행하지 않고 지나가겠죠.

 

다음 회전인 i가 8인 상태에서 또한 8%3은 2이므로 hap+=i를 수행하지 않아 hap은 여전히 0 입니다.

 

다음 회전인 i가 7인 상태에서는 7%3은 1이됩니다. 때문에 hap+=i로 인해 hap에 7이 더해져 hap이 7이 되는 것입니다.

 

(%는 나머지 연산입니다. 7을 3으로 나눌 경우 몫은 2, 나머지는 1이 됩니다.

1을 3으로 나눌 경우 몫은 0, 나머지는 1이 되죠. 몫*나눔수 + 나머지 = 원래 값)

 

행복한 하루되세요 :)

  • 관리자
    2019-05-09 13:10:17

    안녕하세요 길벗수험서 운영팀입니다.

     

    교재 483쪽을 기준으로 설명드리겠습니다.

     

    처음 while문에 진입하여 3번을 만나면 i가 9인 상태에서 4번, 5번을 수행합니다.

    9%3은 0이므로 hap+=i 를 수행하지 않고 지나가겠죠.

     

    다음 회전인 i가 8인 상태에서 또한 8%3은 2이므로 hap+=i를 수행하지 않아 hap은 여전히 0 입니다.

     

    다음 회전인 i가 7인 상태에서는 7%3은 1이됩니다. 때문에 hap+=i로 인해 hap에 7이 더해져 hap이 7이 되는 것입니다.

     

    (%는 나머지 연산입니다. 7을 3으로 나눌 경우 몫은 2, 나머지는 1이 됩니다.

    1을 3으로 나눌 경우 몫은 0, 나머지는 1이 되죠. 몫*나눔수 + 나머지 = 원래 값)

     

    행복한 하루되세요 :)

  • 관리자
    2019-05-10 10:27:28

    안녕하세요 길벗수험서 운영팀입니다.

     

    while 반복문이 나올 때는 조건과 변수의 변화를 주의깊게 확인하셔야 합니다.

     

    while(i>1) 이라는 것은 i가 1보다 클 때 아래 코드를 반복하라는 의미입니다.

     

    만약 i가 2일 때 아래의 코드를 수행하면,

     

    while(i>1) {

     i--;

     sum+=i;

    }

     

    while(i>1)는 참이니 아래 코드를 수행하게 되고,

    i는 1 감소하고,

    sum에는 i의 값 1을 누적하고,

    종료하게 되죠.

     

    2일 때 코드에 진입하여 감소된 1로 연산을 하고 빠져나가게 되는 것입니다.

     

    행복한 하루되세요 :)

  • *
    2019-05-09 13:42:26

    아 정말 감사합니다 ㅎㅎ

    근데 while (i > 1) 이면 i값이 2일때까지 계산하는거 아닌가요?

    1까지 해야 출력이 12가 나오더라구요..

     

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