책 내용 질문하기
정보처리산업기사 실기 1과목 1권 76쪽 문제 3번
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
76
조회수
259
작성일
2020-08-27
작성자
탈퇴*원
첨부파일

i = 1일 때 왜 hap = 12가 되는건지 이해가 안됩니다.

 

i = 1일 때는 while (i > 1) 조건에 의해서 반복이 멈춰지고 printf("%d\n", hap); 문으로 가서 종료되므로 

 

답은 11이라고 생각했는데, 어떤 부분이 잘못된건지 모르겠습니다.

 

감사합니다.

 

코로나 조심하시고 건강하세요!

답변
2020-08-28 10:54:42

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

 

알고리즘의 전체적인 흐름도 중요하지만 순차적으로 진행된다는 것 또한 염두에 두셔야 합니다.

 

i가 1이 되는 시점이 언제인지 파악해보세요.

 

i가 2인 시점에 while (i>1)이 참이 되어 다음 줄로 갑니다.

i--를 만나 i는 1이되고

if(i%3==1)에서 참이 되고

hap += i에서 hap은 1(i)이 더해져 12가 됩니다.

 

다시 while(i>1)에서 i는 1이니 거짓이 되어 while문을 벗어나 printf문으로 가게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-08-28 10:54:42

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

     

    알고리즘의 전체적인 흐름도 중요하지만 순차적으로 진행된다는 것 또한 염두에 두셔야 합니다.

     

    i가 1이 되는 시점이 언제인지 파악해보세요.

     

    i가 2인 시점에 while (i>1)이 참이 되어 다음 줄로 갑니다.

    i--를 만나 i는 1이되고

    if(i%3==1)에서 참이 되고

    hap += i에서 hap은 1(i)이 더해져 12가 됩니다.

     

    다시 while(i>1)에서 i는 1이니 거짓이 되어 while문을 벗어나 printf문으로 가게 되죠.

     

    행복한 하루되세요 :)

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