centurybread   2년 전

숫자 몇개 넣어보면 맞게 나오는데 틀렸습니다 라고 뜨네요

wizardrabbit   2년 전

안녕하세요? 올려주신 코드로 디버깅을 해보았고, 문제를 찾았습니다!

반례:

입력: 17
정답: 13
출력: 0

13 + 1 + 3 = 17 이므로 정답은 13입니다.

이러한 반례가 생긴 원인은 바로 10~12번째 줄에 있습니다. n보다 조사하고자 하는 수가 더 클 경우 0을 출력하고 프로그램을 종료하게끔 코드를 짜신 것 같은데, n과 비교하고자 하는 수가 sum_ 이라 분해합과 n 값을 비교하고 있네요. 입력이 17로 주어졌고 숫자 9를 검사하고 있다면, 9와 17을 비교하게 되므로 계속해서 프로그램이 작동하겠지만, 실제로 sum_ 값에는 9 + 9 인 18이 저장되어 프로그램이 의도한 것보다 일찍 끝나겠네요.

sum_ 말고, 분명히 선언하신 변수 중 현재 비교하고 있는 수를 저장하고 있는 변수가 있습니다. 그 변수로 한 번 바꿔보시겠어요?

문제가 해결되기를 바랍니다.

centurybread   2년 전

말씀하신대로 변수를 바꾸니까 해결됐습니다. 친절한 설명 감사합니다!

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