gmldnd0418   4년 전

아 래의코드는 AC를 받은 코드입니다. 그런데 저는 처음에 for문안에  i와 j를 int로 두고 해서 계속 런타임에러가 났습니다.

그런데 여기서 max값을 최대인 10^12+10^6 이라고 생각해도 i,j가 int의 범위를 넘지 않고 실제로 100만1000개의 인덱스를 가지는 arr배열의 인덱스로

사용되는것을 보아 그 숫자가 int의 범위 안에있는 것을 알 수 있는데 어째서 int로 하면 런타임에러가 뜨고 long long선언시 AC가 나오는지 모르겠습니다.

jung2381187   4년 전

j가 int면 j*j에서 오버플로가 납니다.

gmldnd0418   4년 전

그렇군요. 그런데 처음에 저는 이렇게 max에 sqrt를 씌워서 했었는데 이 경우도 int를 사용하면 런타임 에러가 나옵니다. 이경우는 왜그런 것입니까?

djm03178   4년 전

21, 22번째 줄도 마찬가지입니다.

gmldnd0418   4년 전

21번째줄에서 i*i 를 할때도 오버플로우가 일어나면 i가 long long이여야 하군요. 몰랐네요 감사합니다!

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