gusqja8753   4달 전

조합 공식대로 한번 만들어봤습니다

M을 1씩줄여가면서 N번 곱해주고 N!을 나누는 식으로 만들었습니다.

하지만 오답 처리 되는데요 어떤 경우에서 오답으로 처리되는지 궁금합니다.

gallopsys   4달 전

double의 부동 소수점 오차때문에 값이 다르게 나올 수 있습니다.

예를 들어 테스트 케이스로 3 29를 입력하면 3654라고 떠야하고, 반대로 26 29를 입력했을 때도 3654라고 떠야할 겁니다.

그런데 부동 소수점 오차가 점점 커지다보니 26 29를 입력했을 경우 3653이라고 뜹니다. 그 외의 단편적인 예로는 29 29는 1인데 0이라고 뜨네요.

double범위처럼 큰 범위의 정수를 다루고 싶으시면 long long이라는 자료형을 사용하시면 됩니다.

gusqja8753   4달 전

자료형 범위를 넘어가서 생기는 문제였군요 감사합니다

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