안녕하세요.
예를 들어 1234가 입력되었다면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 순서도입니다.
천 단위마다 쉼표는 4자리마다 쉼표(,)를 저장하면 되는데, 이를 위해 4로 나눈 나머지가 0인지를 파악해서 현재 위치가 쉼표(,)를 저장해야 하는 위치인지를 파악하여 처리하는 것이죠.
k = 0, i = 0인 상태로
M에 1234가 입력되었다면
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 0이므로 1/4의 나머지는 1입니다.
0이 아니므로 다음 과정을 처리합니다.
1234를 10으로 나눈 나머지를 구합니다.
몫이 123이고 나머지는 4입니다. S(i), 즉 S(0)에 4를 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 123이 됩니다.
i를 증가시켜 i는 1이 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 1이므로 2/4의 나머지는 2입니다.
0이 아니므로 다음 과정을 처리합니다.
123을 10으로 나눈 나머지를 구합니다.
몫이 12이고 나머지는 3입니다. S(i), 즉 S(1)에 3을 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 12가 됩니다.
i를 증가시켜 i는 2가 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 2이므로 3/4의 나머지는 3입니다.
0이 아니므로 다음 과정을 처리합니다.
12를 10으로 나눈 나머지를 구합니다.
몫이 1이고 나머지는 2입니다. S(i), 즉 S(2)에 2를 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 1이 됩니다.
i를 증가시켜 i는 3이 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 3이므로 4/4의 나머지는 0입니다.
0이므로 S(i), 즉 S(3)에 ","를 저장합니다.
i를 증가시켜 i는 4가 됩니다.
1을 10으로 나눈 나머지를 구합니다.
몫이 0이고 나머지는 1입니다. S(i), 즉 S(4)에 1을 저장합니다.
M을 1으로 나눈 몫을 저장합니다. M은 0이 됩니다.
i를 증가시켜 i는 5가 됩니다.
몫, 즉 M이 0이므로 ⑤번에서 Yes가 되어 이제 저장된 값을 거꾸로 출력합니다.
현재 1234의 뒤에서부터 값을 한 자리씩 저장하면서 쉽표의 위치도 찾아 저장했으므로
432,1로 저장되어 있습니다.
이를 뒤에서 부터 출력하면 1,234가 됩니다.
위 내용을 참고하여 빈 괄호에 답을 모두 채운 후 차분히 디버깅을 수행하면서 각 변수의 값 변화를 파악해 보세요.
오늘도 즐거운 하루 되세요.
-
*2016-06-09 09:30:53
안녕하세요.
예를 들어 1234가 입력되었다면 1,234와 같이 천 단위마다 쉼표(,)를 포함해서 출력하는 순서도입니다.
천 단위마다 쉼표는 4자리마다 쉼표(,)를 저장하면 되는데, 이를 위해 4로 나눈 나머지가 0인지를 파악해서 현재 위치가 쉼표(,)를 저장해야 하는 위치인지를 파악하여 처리하는 것이죠.
k = 0, i = 0인 상태로
M에 1234가 입력되었다면
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 0이므로 1/4의 나머지는 1입니다.
0이 아니므로 다음 과정을 처리합니다.
1234를 10으로 나눈 나머지를 구합니다.
몫이 123이고 나머지는 4입니다. S(i), 즉 S(0)에 4를 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 123이 됩니다.
i를 증가시켜 i는 1이 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 1이므로 2/4의 나머지는 2입니다.
0이 아니므로 다음 과정을 처리합니다.
123을 10으로 나눈 나머지를 구합니다.
몫이 12이고 나머지는 3입니다. S(i), 즉 S(1)에 3을 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 12가 됩니다.
i를 증가시켜 i는 2가 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 2이므로 3/4의 나머지는 3입니다.
0이 아니므로 다음 과정을 처리합니다.
12를 10으로 나눈 나머지를 구합니다.
몫이 1이고 나머지는 2입니다. S(i), 즉 S(2)에 2를 저장합니다.
M을 10으로 나눈 몫을 저장합니다. M은 1이 됩니다.
i를 증가시켜 i는 3이 됩니다.
M은 0이 아니므로
(i+1)을 4로 나눈 나머지를 구합니다.
i가 3이므로 4/4의 나머지는 0입니다.
0이므로 S(i), 즉 S(3)에 ","를 저장합니다.
i를 증가시켜 i는 4가 됩니다.
1을 10으로 나눈 나머지를 구합니다.
몫이 0이고 나머지는 1입니다. S(i), 즉 S(4)에 1을 저장합니다.
M을 1으로 나눈 몫을 저장합니다. M은 0이 됩니다.
i를 증가시켜 i는 5가 됩니다.
몫, 즉 M이 0이므로 ⑤번에서 Yes가 되어 이제 저장된 값을 거꾸로 출력합니다.
현재 1234의 뒤에서부터 값을 한 자리씩 저장하면서 쉽표의 위치도 찾아 저장했으므로
432,1로 저장되어 있습니다.
이를 뒤에서 부터 출력하면 1,234가 됩니다.
위 내용을 참고하여 빈 괄호에 답을 모두 채운 후 차분히 디버깅을 수행하면서 각 변수의 값 변화를 파악해 보세요.
오늘도 즐거운 하루 되세요.