자신보다 작은 수를 나눌 때는 어느 질문의 답변에 몫은 0이고 나머지 1이라는데 0은 몫은 0, 나머지는 1인데 어째서 1을 나눌 때는 나머지가 0입니까? 그리고 MOD(2,2)가 어째서 나머지가 1입니까? 답안지에 그렇게 써있는데 설명좀 부탁드립니다
그리고 디버깅에서 i값은 누적된 값으로 계산해야 하는 것 아닙니까? 어째서 답안지에는 누적된 값이 아닌 값으로 표기를 해논것이죠?
안녕하세요.
디버깅 표를 보는 방법은 각 변수의 가로의 위치를 보는 것이 아니라 각 변수의 세로 값의 변화만 확인하면 됩니다.
실제 시험지에 디버깅할 때 협소한 공간 안에서 디버깅을 해결하기 위해 각 변수의 가로 위치를 맞추지 않고 각 변수의 세로 값의 변화만 확인할 수 있도록 붙여서 작성한 것입니다.
MOD(i, 2)의 값 변화를 살펴보면
처음에 i는 0으로 초기값을 갖은 후 i=i+1에 의해 i가 1이 된 상태에서 MOD(i, 2)를 만나게 됩니다.
그러면 MOD(1, 2)에 의해 1을 2로 나눌 수 없으므로 몫이 0이 되고 나머지는 피젯수 그대로인 1이 됩니다.
이후 i가 1씩 증가하면서, 즉 2, 3, 4, 5, 6, 7, 8, ... 이 되면서
MOD(i, 2)를 진행하게 되는데, i가 2일 때는 MOD(i, 2)에 의해 몫은 1, 나머지는 0이 됩니다.
다시 i가 3이 될 때 MOD(i, 2)는 몫은 1은 나머지는 1이 됩니다.
그래서 나머지는 0, 1, 0, 1, 0, 1 ... 이 반복되는 것이죠.
i는 초기값 0에서 i=i+1이 적용되여, 즉 값이 1씩 누적되어 1, 2, 3, 4, 5, 6, .... 을 갖게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2016-01-04 09:25:38
안녕하세요.
디버깅 표를 보는 방법은 각 변수의 가로의 위치를 보는 것이 아니라 각 변수의 세로 값의 변화만 확인하면 됩니다.
실제 시험지에 디버깅할 때 협소한 공간 안에서 디버깅을 해결하기 위해 각 변수의 가로 위치를 맞추지 않고 각 변수의 세로 값의 변화만 확인할 수 있도록 붙여서 작성한 것입니다.
MOD(i, 2)의 값 변화를 살펴보면
처음에 i는 0으로 초기값을 갖은 후 i=i+1에 의해 i가 1이 된 상태에서 MOD(i, 2)를 만나게 됩니다.
그러면 MOD(1, 2)에 의해 1을 2로 나눌 수 없으므로 몫이 0이 되고 나머지는 피젯수 그대로인 1이 됩니다.
이후 i가 1씩 증가하면서, 즉 2, 3, 4, 5, 6, 7, 8, ... 이 되면서
MOD(i, 2)를 진행하게 되는데, i가 2일 때는 MOD(i, 2)에 의해 몫은 1, 나머지는 0이 됩니다.
다시 i가 3이 될 때 MOD(i, 2)는 몫은 1은 나머지는 1이 됩니다.
그래서 나머지는 0, 1, 0, 1, 0, 1 ... 이 반복되는 것이죠.
i는 초기값 0에서 i=i+1이 적용되여, 즉 값이 1씩 누적되어 1, 2, 3, 4, 5, 6, .... 을 갖게 됩니다.
오늘도 즐거운 하루 되세요.