dreamian   2년 전

문제를 풀다가 궁금한 점이 생겨 질문합니다!

1. 문제 설명

문제는 n Combination m의 조합을 찾는 문제이고, n,m의 각각의 범위는 5~100, 5~100입니다.

2. 소스 코드 설명

1) 100 Comb 50의 값이 long long의 범위를 넘어가기 때문에 먼저 푸신 분들의 소스 코드를 참고하여 Biginteger를 구현하였습니다.

2) for문의 경우는 n*m번 반복되며, 파스칼의 삼각형을 구현하였습니다.

3) 시간 복잡도를 고려하여 m이 n/2보다 큰 경우 n-m으로 값을 바꾸어 계산하였습니다. ( nCm=nC(n-m) )

3. 해결하지 못 한 문제

- 소스 코드의 15번째 line에서 재귀를 이용하여 함수를 실행하려고 하였습니다. 하지만 메인 함수에서 출력되는 값은 원하는 값이 아니라 모두 '0'의 값을 얻게 되었습니다. (15번째 line에 printf("***\n");와 같은 문을 삽입하였는데, 정상 출력되는 것을 확인했습니다.)

4. 대안

- main함수에서 해당 조건문을 실행하여 문제를 해결하였습니다.


여기서 궁금한 점은 왜 15번째 line에서 해당 if문을 이용하면, 원하는 값이 출력되는 게 아니라 '0'을 출력하는지 궁금합니다.

input 예)

10 8

정답)

45

출력된 값)

0


감사합니다!


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