1789번 - 수들의 합
저는 이문제를 최초s를 받고서
말로설명하기 애매한데 예를들어 56을 받았다하면
1+2+3+4+5+6+7+8+9=45 까지한후 남은수중 가장 큰수인 11을 더해서 s를 만드는 방식으로 생각하여 코드를
작성했는데 정답이 아니라고 하네요;;
왜그런지 알려주실수 있을까요.
주어지는 숫자가 int범위를 벗어납니다. (int는 2^31-1 까지 표현이 가능합니다)
감사합니다. 그런데 조언을 듣고 sum과 num의 자료형을 int unsigned로 바꿧는데 시간초과라는 결과가 나오네요...
unsigned int를 써도 작업 도중 그보다 더 큰 값을 가지게 될 수 있습니다. (sum > num 을 하는데 sum이 MAX값보다 크면 안되겠죠)
시간초과는 아마 overflow때문에 값이 이상한 값으로 바뀌어서 나타나는 것으로 예측됩니다
아... 무슨말씀인지 잘 알았습니다.
제가 공부를 시작한지 얼마안되서 너무 두루뭉술하게만 하려해서그런지
너무 오점이 많이 발견되네요 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
jyb1346 7년 전
저는 이문제를 최초s를 받고서
말로설명하기 애매한데 예를들어 56을 받았다하면
1+2+3+4+5+6+7+8+9=45 까지한후 남은수중 가장 큰수인 11을 더해서 s를 만드는 방식으로 생각하여 코드를
작성했는데 정답이 아니라고 하네요;;
왜그런지 알려주실수 있을까요.