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:**