#include<stdio.h>
long Comb(int m, int k);
long Fact(int n);
int main() {
int m, k;
do {
printf("Input m,k (m>=k>0):");
scanf("%d,%d", &m, &k);
} while (m < k || m < 0 || k < 0);
printf("%ld\n", Comb(m, k));
return 0;
}
long Comb(int m, int k) {
return Fact(m) / (Fact(k)*Fact(m - k));
}
//long Fact(int n) {
// int i;
// long result = 1;
// for (i = 2; i <= n; i++) {
// result *= i;
// }
// return result;
//}
long Fact(int n) {
if (n < 0)
return -1;
else if (n == 0 || n == 1)
return 1;
else
return n * Fact(n - 1);
}
组合问题
最新推荐文章于 2023-09-10 15:47:39 发布