안녕하세요? 올려주신 코드로 디버깅을 해보았고, 문제를 찾았습니다!
반례:
입력: 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년 전
숫자 몇개 넣어보면 맞게 나오는데 틀렸습니다 라고 뜨네요