The following is a C program to compute Permutation and Combination:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/************************************************** Program to calculate Permutation and Combination * * Enter n: 10 * Enter r: 4 * Permutation = 5040 * Combination = 210 ***************************************************/ #include<stdio.h> // include stdio.h library long permutation(int n, int r); long combination(int n, int r); long factorial(int num); int main(void) { int n, r; printf("Enter n: "); scanf("%d", &n); printf("Enter r: "); scanf("%d", &r); printf("Permutation = %ld\n", permutation(n, r)); printf("Combination = %ld", combination(n, r)); return 0; // return 0 to operating system } long permutation(int n, int r) { return factorial(n) / factorial(n-r); } long combination(int n, int r) { return permutation(n, r) / factorial(r); } long factorial(int num) { long long fact = 1; while(num > 0) { fact *= num; num--; } return fact; } |
Expected Output:
1st run:
1 2 3 4 |
Enter n: 5 Enter r: 3 Permutation = 60 Combination = 10 |
2nd run:
1 2 3 4 |
Enter n: 5 Enter r: 0 Permutation = 1 Combination = 1 |
How it works
Nothing magical here we are simply using the formula to calculate permutation and combination.
The permutations of n
different objects taken r
at a time is given by:
The combinations of n
different objects taken r
at a time is given by:
Recommended Reading: