vansoft   2년 전

아래 코드에서는 long long을 사용해야 문제가 생기는데, int형을 사용할 수 없는 이유가 오버플로우가 발생해서 그런건가요?

그러면 그 오버플로우가 발생한다는 것을 어떤 방법을 통해서 확인할 수 있나요?

그리고 long long이랑 int를 사용해야 하는 경우를 구분할 수 있는 방법을 알려주세요..

dennis1029k   2년 전

오버플로우가 발생하는 경우는 Int형의 경우에는 2^31 - 1 = 2147483647을 넘어가는 숫자를 사용하면, 예를 들어 2147483648을 입력하면, -2147483648로 넘어가는 경우를 오버플로우 라고 합니다. 보통의 경우에는 문제에서 int형만으로도 충분한 경우가 많지만, 직관적 판단을 했을 때 그 변수가 2147483648을 넘어갈 여지가 조금이라도 있으면 long long을 사용하시는 것을 추천드립니다. 위의 경우에는 오버플로우가 발생해서 그런 것이 맞습니다.

vansoft   2년 전

직관적 판단을 한다는게 어떻게 하는건가요..? 

어떻게 계산해야 int형을 사용하고 longlong을 사용할 수 있는지 감이 안서네요..

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