minu0122   6년 전

여러가지 예시를 생각해봐서 넣어봤는데 뭐가 틀렸는지 모르겠어요ㅠㅠ

djm03178   6년 전

이것이 원인인지는 모르겠지만, 25번째 줄이 저렇게 많이 반복된다면 큰 오차가 발생할 가능성이 높습니다. 특히 float는 정확도가 6자리 정도밖에 보장이 안 되기 때문에 예를 들어 4000이 50만 개 들어온다면 오차가 상당할 수도 있고, 더욱이 반올림을 해야 하기 때문에 치명적일 수도 있습니다.

minu0122   6년 전

감사합니다~ 참고하겠습니다

minu0122   6년 전

하지만 테스트로 1000억까지 넣어봐도 오차가 나지 않는것을 보니 그것이 문제는 아닌듯 합니다ㅠㅠ

djm03178   6년 전

오차는 꽤 납니다. https://ideone.com/4M2eDE

3999 * 500000이니 1999500000이 나와야 하는데 저만큼 차이가 납니다.

minu0122   6년 전

아, 그렇군요 일단 double로 바꿔놨습니다~

그런데도 9%쯤 가면 틀리다고 나오네요ㅠㅠ

djm03178   6년 전

애초에 합을 구하는 데에 실수형이 쓰일 필요가 없습니다. 실수형은 연산을 할 때마다 오차를 우려해야 하는데, 처음부터 정수로만 더하면 전혀 걱정할 필요가 없는 부분입니다.

아마 그 말고도 잘못된 부분이 있을 것 같으니 체크해 봐야겠네요.

minu0122   6년 전

이렇게 바꾸는것은 괜찮은 건가요?

djm03178   6년 전

저것 자체는 괜찮을 거 같네요.

minu0122   6년 전

틀릴만한것 하나는 고쳤네요 ㅎㅎ 감사합니다~

minu0122   6년 전

마지막  int i = 8001이 틀렸네요ㅠㅠ i는 0부터 8000 까지니까 범위가 틀린거였어요

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