4673번 - 셀프 넘버
값 자체가 출력이 안되는데 어디가 잘못된건지 알 수 있을까요..
totalsum이 10000보다 커서 배열의 범위를 벗어날 수 있습니다
아 그렇네요 그렇다면 이 경우에는 배열 값을 totalsum 중에 나올 수 있는 최댓값을 구한 후, 그 값만큼 배열의 크기를 설정해야 하나요? 아니면 다른 방법이 있을까요?
최댓값은 9999일때 10035로 최대인데, 이것을 사용자가 직접 알아낸 다음 배열의 크기를 설정하는 방법밖에 없는건지 궁금합니다
totalsum가 10000보다 작거나 같은 경우에만 체크하면 됩니다....
9999 -> 9999+9+9+9+9(=10035)
9999는 10035의 생성자
생성자가 없는 수 = 셀프넘버
따라서 totalsum은 최대 10035까지 계산할 수 있어야 하는것이 아닌가요?
혹시 제가 잘못 이해한 부분이 있을까요
그건 맞지만, 배열의 크기가 커져야 할 필요는 없습니다. 그냥 if (totalsum <= 10000) str[totalsum] = 1;을 하면 됩니다.
왜냐하면 출력해야 할 수는 10000까지만 보면 되기 때문입니다.
조금 더 생각해보겠습니다. 감사합니다
댓글을 작성하려면 로그인해야 합니다.
kjs89271s 2년 전
값 자체가 출력이 안되는데 어디가 잘못된건지 알 수 있을까요..