li_la_4   2년 전

출력 초과 나오는 이유가 뭘까요....

djm03178   2년 전

9번째 줄의 식이 틀렸습니다. 문제를 다시 잘 읽고 맞는 식을 세워 보세요.

li_la_4   2년 전

저 식을 어떻게 고쳐야 할지 모르겠네요...ㅠ

wizardrabbit   2년 전

안녕하세요!

9번째 줄에 적힌 코드는 자기 자신을 더하는 i를 제외하면 i / 10과 i % 10을 더하는 식인데, 이런 방식의 식은 두 자리 수 이하의 자릿수를 더할 때만 올바르게 계산이 될 것 같습니다.

45라는 수가 주어지면 45 / 10 = 4, 45 % 10 = 5로 자릿수 4, 5가 정상적으로 계산되지만

789라는 수가 주어지면 789 / 10 = 78, 789 % 10 = 9로 7, 8, 9가 나와야 할 계산 결과가 78, 9로 나오게 되어 의도와 다르게 계산됩니다.

몇 자리 수가 입력으로 주어지든 올바르게 자릿수를 더하기 위해서는 아래의 논리를 적용하면 될 것 같습니다:

1. 입력으로 주어진 수를 10으로 나눈 나머지를 더합니다.
2. 입력으로 주어진 수를 10으로 나눕니다(여기서 '나눈다' 는 C의 /를 의미합니다)
3. 입력을로 주어진 수가 0이 될 때까지 1, 2번을 반복합니다.

예시) 3020

* 여기서 '나눈다' 의 의미는 C에서 / 연산자를 적용한다는 것을 의미합니다.

3020을 10으로 나눈 나머지는 0입니다. 0을 더합니다. 3020을 10으로 나누면 302가 됩니다.

302를 10으로 나눈 나머지는 2입니다. 2를 더합니다. 302를 10으로 나누면 30이 됩니다.

30을 10으로 나눈 나머지는 0입니다. 0을 더합니다. 30을 10으로 나누면 3이 됩니다.

3을 10으로 나눈 나머지는 3입니다. 3을 더합니다. 3을 10으로 나누면 0이 됩니다.

수가 0이 되었으므로 여기서 끝마칩니다.

지금까지 더한 값은 0 + 2 + 0 + 3으로 연산을 진행할 때마다 일의 자리, 십의 자리, 백의 자리, ... 의 자릿수가 구해지는 것을 확인할 수 있습니다. 이 방식으로 문제를 해결해 보세요.

댓글을 작성하려면 로그인해야 합니다.