알고리즘 76 페이지 3번 문제
결과값이 12가 아니라 11 아닌가요..
I = 1 일때 처리문이 실행 안되야 하는게 맞는거 아닌지요?
안녕하세요.
i를 3으로 나눈 나머지가 1인 경우인 i 값은
7, 4, 1입니다.
7을 3으로 나누면 몫이 2이고 나머지가 1입니다.
4를 3으로 나누면 몫이 1이고 나머지가 1입니다.
1을 3으로 나누면 몫이 0이고 나머지가 1입니다.
자신보다 작은 수를 나눌 경우 몫은 0이되고 나머지는 나눠지는 수가 됩니다.
그러므로 7+4+1 = 12가 됩니다.
오늘도 즐거운 하루 되세요.
-
관리자2019-03-27 11:02:03
안녕하세요.
i를 3으로 나눈 나머지가 1인 경우인 i 값은
7, 4, 1입니다.
7을 3으로 나누면 몫이 2이고 나머지가 1입니다.
4를 3으로 나누면 몫이 1이고 나머지가 1입니다.
1을 3으로 나누면 몫이 0이고 나머지가 1입니다.
자신보다 작은 수를 나눌 경우 몫은 0이되고 나머지는 나눠지는 수가 됩니다.
그러므로 7+4+1 = 12가 됩니다.
오늘도 즐거운 하루 되세요.
-
관리자2019-03-28 10:26:11
안녕하세요 길벗수험서 운영팀입니다.
while문의 위치와 변수의 변화를 파악하셔야 합니다.
1. while (i > 1) {
2. i--;
3. if (i % 3 == 1)
4. hap += i;
}
1. 에서 i값이 3일때 부터 진행해 보겠습니다.
1. 3>1이므로 2.를 수행
2. i는 1 감소하여 i=2
3. i%3은 2이므로 1.을 수행
1. 2>1이므로 2.를 수행
2. i는 1 감소하여 i=1
3. i%3은 1이므로 4.를 수행
4. hap += 1
이렇게 됩니다.
while문을 만날 때 i는 2에서 통과하지만
i--를 수행하고 if문을 만날때 i는 1이 되게 되는 것이죠.
행복한 하루되세요 :)
-
*2019-03-27 20:18:28
I 가 1일 경우에는 1보다 크지않으므로
처리문을 실행하지 않고 반복문에서 빠져 나오는 거 아닌가요?
즉, 덧셈의 대상은 7 하고 4 아닌가요?