用c语言编写函数,计算组合数c(n,k)=n!/(k!(n_)
时间: 2024-12-15 18:25:25 浏览: 16
combine.rar
在C语言中,你可以使用递归或迭代的方式编写一个函数来计算组合数\( C(n, k) \),也称为“n choose k”,其计算公式是 \( n! / (k!(n-k)!) \)。这里 \( ! \) 表示阶乘。
以下是使用递归的实现方式:
```c
#include <stdio.h>
// 计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 计算组合数(使用递归)
unsigned long long combination(int n, int k) {
if (k > n || k == 0)
return 0; // 如果k超出范围返回0
else
return factorial(n) / (factorial(k) * factorial(n - k));
}
int main() {
int n, k;
printf("请输入n和k的值:");
scanf("%d %d", &n, &k);
unsigned long long result = combination(n, k);
printf("C(%d, %d) = %llu\n", n, k, result);
return 0;
}
```
阅读全文