furyhunter   7년 전

숫자가 int 범위 넘어가서 오류 난다고 들어서.. long long으로 선언을 했는데 오답이 뜨네요..

원인이 뭘까요.. 엉엉

sgchoi5   7년 전

문제 번호가 없네요.

onjo0127   7년 전

(long long)(((3 * N * N) + (5 * N) + 2) / 2)

여기서 먼저 3*N*N이 계산되는데, 이게 int형으로 먼저 계산되어버려서 계산되는 순간 오버플로우가 납니다. long long으로 바꾸어주는 작업은 모든 계산이 끝나고 이루어져서 오버플로우가 이미 나 버린 상태에서 형변환이 됩니다

N을 long long으로 처음에 선언해버리면 간단히 해결됩니다 ^^

furyhunter   7년 전

count만 long long으로 바꿨었는데 N까지 바꿔야 하는군요..

정말 감사합니다!

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