baeusa1   6년 전

0~N의 정수를 K개를 써서 N을 만들 수 있는 갯수를 구하라고 하길래

(n+1) H (k-1) 이렇게 식을 세웠는데

***(n+1) : 0~N의 갯수

***(k-1) : k개를 써서 만든다는 뜻은 k-1개의 공간을 만든다는 뜻

***(H) : 숫자의 중복 가능

이렇게 생각을 해서 중복 조합으로 식을 세웠는데 틀렸다고 나오네요 ㅠㅠ

어느 로직이 틀렸는 지 부탁드립니다.

djm03178   6년 전

마지막 줄을

print(fac(n+r-1)//(fac(r-1)*fac(n))%1000000000)

로 바꾸니 맞았습니다.

파이썬의 실수형에 대해서 잘 모르지만, 실수형은 오차가 언제든 날 수 있기 때문에 그런 결과를 내는 것 자체를 피해야 됩니다. 처음부터 // 를 써서 정수형의 연산 결과를 내면 오차가 없습니다.

baeusa1   6년 전

어짜피 정수 나올 거라서 뒤에 소수점 없애주려고 int()썼었는데 '//'을 써도 되었군요!!

정확한 지적 감사합니다 :)

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