psu9808   2년 전

1297번 문제 질문입니다..

문제 생각을.. 임의의 값 x를 잡고

a^2=(bx)^2+(cx)^2에서

x^2=a^2/(b^2+c^2)임을 이용해서 풀려고 했는데요..

구한 x를 pow를 이용해서 제곱근을 만든다음 비율과 각각 곱해줫는데,, 틀리다고 나오네요..

vs에서도 예시의 경우와 몇개 제가 맞다고 생각하는 간단한 예시 넣어봤는데 맞더라구요

왜안될까요 ㅠㅠ 도움좀 주십시요

baekjoon   2년 전

실수 연산을 사용하면서 발생하는 오차 때문입니다. 

VS를 사용하시면, watch 창에서 어던 double값이 저장되는지 볼 수 있을 텐데요, double a = 0.3 과 같은 것을 저장하고 watch를 통해서 보면 정확한 0.3이 저장되지 않는 다는 것을 알 수 있습니다.

출력할 때, +1e-9를 추가하고 int로 바꾸시면, 14.99999999999같은 경우에 14가 아니고 15로 올바르게 출력할 수 있습니다.

psu9808   2년 전

아 그러네요! 감사합니다~

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