Computer >> Computer tutorials >  >> Programming >> C programming

C Program find nCr and nPr.


In C programming language, nCr is referred as the combination. nCr is the selection of r objects from a set of n objects, where the order of objects does not matter.

nPr is referred as the permutation. nPr is arrangement of 'r' objects from a set of 'n' objects, which should be in an order or sequence.

Permutations and combinations formulas

The formulas to find the permutation and combination of given numbers in C language are given below −

  • nCr = n!/(r!*(n-r)!)
  • nPr = n!/(n-r)!.

The logic used to find nCr is as follows −

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

The logic used to find nPr is as follows −

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

Example

Following is the C program to find the permutation and combination of given numbers −

#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;
}

Output

When the above program is executed, it produces the following output −

Enter the value of n and r
5 2
5C2 = 10
5P2 = 20