minjun623   5년 전

dp의 연산과정을 위와 같이 하였을때는 맞았지만, 밑에 처럼 했을땐 틀렸다고 합니다.

연산의 다른 부분은 없으니 long long 을 int로 받아오는 과정에서 문제가 발생한 것 같은데, int 범위의 long long의 수를 받아올때 문제가 생기지 않는다고 알고 있었는데 잘못된 건가요??

jseo   5년 전

memo[i-2] + memo[i-4] + memo[i-6] 가 int형 범위를 넘어갈수 있습니다.

minjun623   5년 전

tmp 가 long long 형 64비트 까지 받을 수 있다고 알고 있습니다.

2^32*3 해도 tmp에 대하여 오버플로우가 발생되지 않습니다.

tmp %= 1000000009;

연산으로 tmp가 int범위에 들어옵니다.

tmp 변수에 대하여 한번 오버플로우가 발생하면, int 변수로 받아 오는데 지장이 생기나요??

djm03178   5년 전

모든 연산에는 자료형이 있습니다. 여러 연산을 이어붙여도 그 중간 단계 하나 하나에 다 자료형이 있습니다. 그 중간 어디선가 오버플로가 발생했다면, 손실된 부분은 영영 되찾을 수 없게 됩니다.

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