Skip to content

문제 10 · while·continue와 6의 배수 합

문제 10 [2점]

아래 코드의 num, sum은 어떤 값을 갖는지 쓰시오.

cpp
int num = 0, sum = 0;
while (num < 20) {
    num++;
    if (!((num % 2 == 0) && (num % 3 == 0)))
        continue;
    sum += num;
}
풀이 및 해설

조건 (num % 2 == 0) && (num % 3 == 0)은 "2로도 3으로도 나누어떨어진다", 즉 6의 배수라는 뜻입니다. 앞에 !가 붙어 있으므로

  • 6의 배수가 아니면continue (합산 건너뜀)
  • 6의 배수이면sum += num

num은 1부터 20까지 증가하며, 그중 6의 배수는 6, 12, 18 입니다.

sum=6+12+18=36

반복은 num20이 되어 num < 20이 거짓이 될 때 끝나므로 num = 20 입니다.

num=20,sum=36

👉 실습(C++)에서 확인하기

PDF