📅  最后修改于: 2023-12-03 14:40:27.125000             🧑  作者: Mango
nPr表示从n个元素中取出r个元素,且顺序不同的所有可能组合的个数。nPr的计算公式为:
nPr = n! / (n-r)!
其中,n表示集合中一共有n个元素,r表示取出的元素个数。
下面是一个C程序,用来计算nPr的值。
#include <stdio.h>
// 计算阶乘
int factorial(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
// 计算nPr
int permutation(int n, int r) {
return factorial(n) / factorial(n - r);
}
int main() {
int n, r;
printf("请输入n和r的值:\n");
scanf("%d %d", &n, &r);
if (n < r) {
printf("错误:n必须大于等于r!\n");
return 1;
}
int result = permutation(n, r);
printf("%dP%d = %d\n", n, r, result);
return 0;
}
代码说明:
首先定义了一个函数factorial,用来计算一个数的阶乘。它通过一个for循环,累乘每个数字,最终得到结果。
接着定义了一个函数permutation,用来计算nPr的值。它直接调用了factorial函数,并根据公式计算出nPr的值。
在主函数main中,先从用户输入n和r的值,然后判断n是否大于等于r,如果不满足,输出错误提示信息并退出程序。
最后,调用permutation函数,计算出nPr的值,并输出结果。
通过这个程序,我们可以方便地计算nPr的值,从而更好地理解组合数学的概念。