C程序找到nCr和nPr.排列组合

在C编程语言中,nCr被称为组合。nCr是从n个对象集中选择r个对象,其中对象的顺序无关紧要。

nPr称为置换。nPr是一组“ n”个对象中“ r”个对象的排列,其顺序或顺序应相同。

排列和组合公式

在C语言中找到给定数字的排列和组合的公式如下-

  • nCr = n!/(r!*(nr)!)

  • nPr = n!/(nr)!。

查找nCr的逻辑如下-

result = factorial(n)/(factorial(r)*factorial(n-r));

查找nPr的逻辑如下-

result = factorial(n)/factorial(n-r);

示例

以下是C程序来查找给定数字的排列和组合-

#include <stdio.h>

long factorial(int);

long find_ncr(int, int);

long find_npr(int, int);

int main(){

   int n, r;

   long ncr, npr;

   printf("Enter the value of n and r\n");

   scanf("%d%d",&n,&r);

   ncr = find_ncr(n, r);

   npr = find_npr(n, r);

   printf("%dC%d = %ld\n", n, r, ncr);

   printf("%dP%d = %ld\n", n, r, npr);

   return 0;

}

long find_ncr(int n, int r) {

   long result;

   result = factorial(n)/(factorial(r)*factorial(n-r));

   return result;

}

long find_npr(int n, int r) {

   long result;

   result = factorial(n)/factorial(n-r);

   return result;

}

long factorial(int n) {

   int c;

   long result = 1;

   for (c = 1; c <= n; c++)

   result = result*c;

   return result;

}

输出结果

执行以上程序后,将产生以下输出-

Enter the value of n and r

5 2

5C2 = 10

5P2 = 20

以上是 C程序找到nCr和nPr.排列组合 的全部内容, 来源链接: utcz.com/z/361404.html

回到顶部