jyb1346   7년 전

저는 이문제를 최초s를 받고서

말로설명하기 애매한데 예를들어 56을 받았다하면

1+2+3+4+5+6+7+8+9=45 까지한후 남은수중 가장 큰수인 11을 더해서 s를 만드는 방식으로 생각하여 코드를

 작성했는데 정답이 아니라고 하네요;;

왜그런지 알려주실수 있을까요.

etaehyun4   7년 전

주어지는 숫자가 int범위를 벗어납니다.  (int는 2^31-1 까지 표현이 가능합니다)

jyb1346   7년 전

감사합니다. 그런데 조언을 듣고 sum과 num의 자료형을 int unsigned로 바꿧는데 시간초과라는 결과가 나오네요...

etaehyun4   7년 전

unsigned int를 써도 작업 도중 그보다 더 큰 값을 가지게 될 수 있습니다. (sum > num 을 하는데 sum이 MAX값보다 크면 안되겠죠)

시간초과는 아마 overflow때문에 값이 이상한 값으로 바뀌어서 나타나는 것으로 예측됩니다

jyb1346   7년 전

아... 무슨말씀인지 잘 알았습니다.

제가 공부를 시작한지 얼마안되서 너무 두루뭉술하게만 하려해서그런지

너무 오점이 많이 발견되네요 감사합니다.

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