pyu   7년 전

가능한 경우는 다 생각한 것 같은데 틀렸다고 뜨네요.. 어디가 문제인지 모르겠습니다 ㅠ

chogahui05   7년 전

pow 함수의 원형은 다음과 같습니다.

double pow (double x, double y);

m은 double형입니다. pow 함수를 쓴 후에 리턴되는 거 역시 double입니다.

double 형과 double 형이 같다고 비교하고 있네요.


이건 표준에 어긋나는 것입니다. 컴퓨터에서는 고정 소수점이 아닌, 부동 소수점을 쓰기 때문입니다.


마찬가지 이유로

선분과 선분의 교차 알고리즘도, 직선의 방정식 구하는 식으로 계산하지 않습니다. (처리도 훨씬 복잡하고요.)

ccw 알고리즘을 적용시켜서 구합니다.


그러면 실수 둘을 어떻게 비교하죠? 라고 물어보신다면

a와 b가 있어요. double 형 같은 부동 소수점을 쓰는 변수 둘이 있단 말이죠.

보통은 fabs(a-b) < 매우 매우 작은 수 (보통 엡실론이라고 부릅니다) 라면, 참을 리턴합니다.


memset, memcpy 같은 질문과 더불어서 이 질문이 많이 올라오는데요. (특히 memset은 초기화 관련 질문이 많더군요.)

이 사이트 문제들 특성상, 적지 않게 쓰시는 함수라서 그럴 듯 싶습니다. 물론, 문자열 함수도 적지 않게 물어보시더라고요.

레퍼런스 정도는 보시는 거 추천드립니다. memset이 몇 byte 단위로 메모리에 쓴다는 것을 보통 C 교재에서 잘 안 알려줍니다.

특히 한국 교재에서는요.


그리고, 함수들을 (혹은 메서드들을) 언제 사용해야 하는지, 성능은 어떤지 정도는 파악하시는 게 좋겠네요.

그 정도만 하셔도 반은 먹고 들어갑니다..

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