qkgkq18   2년 전

이번에도 왜 틀렸는지 모르겠네요 

ai4youej   2년 전

반례입니다

4 5

Ans : 1 5

Output : 0 5

(n이 0.2가 아닌 0.19999999999999996로 저장됩니다.)

qkgkq18   2년 전

ㄴ 그러네요 왜 그런걸까요? 

qkgkq18   2년 전

ㄴ 일단 int를 round로 바꿔서 문제가 맞긴 했어요 감사합니다. 

ai4youej   2년 전

그 이유는 '정확한 실수'를 저장할 수 없다는 데 있습니다. 파이썬은 실수를 부동소수점 방식으로 저장하는데, 이는 오차가 있습니다.

대표적인 예시로 0.1 + 0.2 == 0.3은 False를 리턴합니다.

앞으로 문제를 해결할 때 실수형(float)의 비교는 쓰지 않는게 좋습니다!

(만약 굳이 써야한다면, decimal 모듈이 있습니다)

참고로 이 문제는, 분모와 분자를 각각 정수로 생각해서 풀면 됩니다. (굳이 나누지 않아도 됩니다)

qkgkq18   2년 전

ㄴ 감사합니다. 

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