1권 알고리즘 응용편에서 76페이지 c언어 답이 이해가 안되어서요.
문제3번 초기값 i=10, i=i-1
i%3==1 일때 hap=hap+i
i>1보다 클때까지만 합을 구하는데,
9, 8, 7, 6, 5, 4, 3, 2, 1
3으로 나눈 나머지가 1일때는 7, 4 면 합이 11인데 왜 "12"가 된느지 궁금합니다. 빠른 답변 부탁드립니다.
안녕하세요 길벗수험서 운영팀입니다.
while (i>1) 을 i가 2일 때 통과했다고 가정해보세요.
2>1은 참이니 while문 내를 수행하게 됩니다.
i--; 를 만나 i는 1이 되고,
if(i%3==1) 에서 1을 3으로 나누면 몫은 0 나머지는 1 이 되니 참입니다.
때문에 hap += i가 수행되어 12가 되죠.
다음 while (i>1)에서 i>1이 거짓이 되어 printf문으로 빠져나가게 됩니다.
각 코드의 첫 부분 마지막 부분은 한줄한줄 따라가면서 디버깅하는 연습을 하는 것이 좋습니다.
행복한 하루되세요 :)
-
관리자2019-06-17 10:25:25
안녕하세요 길벗수험서 운영팀입니다.
while (i>1) 을 i가 2일 때 통과했다고 가정해보세요.
2>1은 참이니 while문 내를 수행하게 됩니다.
i--; 를 만나 i는 1이 되고,
if(i%3==1) 에서 1을 3으로 나누면 몫은 0 나머지는 1 이 되니 참입니다.
때문에 hap += i가 수행되어 12가 되죠.
다음 while (i>1)에서 i>1이 거짓이 되어 printf문으로 빠져나가게 됩니다.
각 코드의 첫 부분 마지막 부분은 한줄한줄 따라가면서 디버깅하는 연습을 하는 것이 좋습니다.
행복한 하루되세요 :)