#include <stdio.h>
// 计算阶乘
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
// 计算组合数
int combination(int n, int r) {
return factorial(n) / (factorial(r) * factorial(n - r));
}
// 计算排列数
int permutation(int n, int r) {
return factorial(n) / factorial(n - r);
}
int main() {
int n, r;
printf("请输入总数n和选择数r(以空格分隔):");
scanf("%d%d", &n, &r);
if (n >= r) {
int result_comb = combination(n, r);
int result_perm = permutation(n, r);
printf("组合数C(%d, %d) = %d\n", n, r, result_comb);
printf("排列数P(%d, %d) = %d\n", n, r, result_perm);
} else {
printf("错误:总数n应大于等于选择数r。\n");
}
return 0;
}