C 语言中的排列程序
排列是指集合成员可以以某种方式排列或排序的方式数。从 n 个元素中排列 k 个元素的排列公式为 −
nPk = n! / (n - k)!
算法
此算法仅关注排列,而不涉及阶乘的细节 −
开始 步骤 1 → 定义 n 和 r 的值 步骤 2 → 计算 n 和 (n-r) 的阶乘 步骤 3 → 将阶乘 (n) 除以阶乘 (n-r) 步骤 4 →将结果显示为排列 停止
伪代码
此算法可以简单地推导出下面给出的伪代码 −
procedure permutation() Define n and r P = factorial(n) / factorial(n-r) DISPLAY P end procedure
实现
该算法的实现如下 −
#include <stdio.h>
int factorial(int n) {
int f;
for(f = 1; n > 1; n--)
f *= n;
return f;
}
int npr(int n,int r) {
return factorial(n)/factorial(n-r);
}
int main() {
int n, r;
n = 4;
r = 3;
printf("%dp%d = %d
", n, r, npr(n,r));
return 0;
}
输出
程序的输出应为 −
4p3 = 24
mathematical_programs_in_c.html

