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