ysd1029   3달 전

이게 사실상 처음에 짠 코드이고 결국

(a+b)%10007=(a%10007+b%10007)%10007 성질 이용해서 답은 맞췄습니다.

궁금한 게 2가지 있습니다.

1. 처음 짠 코드로 n=1000 일 때 282가 나오고 정답코드로는 1001 이 나왔습니다. 282가 나온건 오버플로우에 의한 오류가 있는 값이라 봐도 되죠?(나오긴 나오길래...)

2. 이게 제일 궁금한데 사실상 처음 문제를 보면 제가 처음에 짰던 거 처럼 짜게 되는데, 이게 오버플로우될만한 값인지 아닌지 어떻게 예측할까요.. 즉 2^31-1 이상의 값이 나왔단 건데 구하는 입장에선 미리 이 정도 크기다라는걸 알기 어려우니... 그냥 우선 미리 대비하는게 나을까요?

onjo0127   3달 전

1. 아마도 그럴 것 같네요

2. 보통 10007 같은 소수로 나눈 나머지를 출력하라고 할 땐 중간에 나누어가면서 출력해야 하는 게 대부분입니다.

나눈 나머지를 출력하라고 할 땐 미리 대비하는 게 나을 것 같아요.

ysd1029   3달 전

감사합니다.

그런데 (a+b)%10007=(a%10007+b%10007)%10007에서 10007이 소수가 아니더라도 이 성질은

성립하긴 하는거죠?  (a+b)%4=(a%4+b%4)%4 와 같이... ( 갑자기 궁금..)ㅜㅜ

onjo0127   3달 전

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