
gmp_binomial 함수의 매개변수 n과 k에 대한 유효성 검사는 다음과 같이 수행할 수 있습니다.
- n과 k의 값이 음수인 경우, 함수가 실패하므로 예외 처리가 필요합니다.
- n과 k의 값이 0인 경우, nCk = 1이므로 정상적으로 계산됩니다.
- n과 k의 값이 양수인 경우, 정상적으로 계산됩니다.
n이 0보다 작은 경우, gmp_binomial 함수는 실패합니다. 이 경우, nCk = 0으로 계산할 수 있습니다.
예를 들어, gmp_binomial(0, 5) = 0을 계산할 수 있습니다.
유효성 검사 코드는 다음과 같습니다.
#hostingforum.kr
c
#include
int main() {
mpf_t n, k;
mpz_t result;
// n과 k의 초기화
mpf_init_set_str(n, "0", 10);
mpf_init_set_str(k, "5", 10);
// 유효성 검사
if (mpf_sgn(n) < 0 || mpf_sgn(k) < 0) {
// n과 k의 값이 음수인 경우, 예외 처리
printf("Error: n and k must be non-negative.n");
} else {
// nCk 계산
mpz_init(result);
mpz_set_ui(result, 1);
for (int i = 0; i < mpf_get_d(k); i++) {
mpz_mul(result, result, n);
mpz_sub_ui(n, n, 1);
}
printf("nCk = %Zdn", result);
}
// 메모리 해제
mpf_clear(n);
mpf_clear(k);
mpz_clear(result);
return 0;
}
이 코드는 nCk 계산을 위한 유효성 검사를 수행하고, n이 0보다 작은 경우 예외 처리를 수행합니다.
2025-06-20 11:25