joo9327   1년 전

코드를 이렇게 짜서 정답이 나왔는데

for문 안에 있는 a를 int로 했을 때는 값이 다르게 나오네요


N이 2000000까지니깐 int로 받았는데

for문안에서 돌아가는 a는 최대로 커봤자 2000000까지 돌아가니깐

int로 선언했었는데 안되네요


왜 안되는 걸까요??

yukariko   1년 전

(N +1)*a 여기에서 int형 범위를 넘어갈 수 있지 않을까요?

joo9327   1년 전

yukariko님께..


b가 long형인데 int * int 가 int 범위를 넘어가면 b에 저장이 안되는건가요?



teram   1년 전

(N+1) * a 가 둘 다 int라 여기서 overflow가 일어날 수 있어요.

b = (N+1)*a 라 하면, overflow가 먼저 일어나고 b로 대입이 됩니다.

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