C program to find nCr and nPr: This code calculate nCr which is n!/(r!*(n-r)!) and nPr = n!/(n-r)!

C program to find nCr using function

[pastacode lang=”c” manual=”%23include%20%3Cstdio.h%3E%0A%20%0Along%20factorial(int)%3B%0Along%20find_ncr(int%2C%20int)%3B%0Along%20find_npr(int%2C%20int)%3B%0A%20%0Aint%20main()%0A%7B%0A%20%20%20int%20n%2C%20r%3B%0A%20%20%20long%20ncr%2C%20npr%3B%0A%20%0A%20%20%20printf(%22Enter%20the%20value%20of%20n%20and%20r%5Cn%22)%3B%0A%20%20%20scanf(%22%25d%25d%22%2C%26n%2C%26r)%3B%0A%20%0A%20%20%20ncr%20%3D%20find_ncr(n%2C%20r)%3B%0A%20%20%20npr%20%3D%20find_npr(n%2C%20r)%3B%0A%20%0A%20%20%20printf(%22%25dC%25d%20%3D%20%25ld%5Cn%22%2C%20n%2C%20r%2C%20ncr)%3B%0A%20%20%20printf(%22%25dP%25d%20%3D%20%25ld%5Cn%22%2C%20n%2C%20r%2C%20npr)%3B%0A%20%0A%20%20%20return%200%3B%0A%7D%0A%20%0Along%20find_ncr(int%20n%2C%20int%20r)%20%7B%0A%20%20%20long%20result%3B%0A%20%0A%20%20%20result%20%3D%20factorial(n)%2F(factorial(r)*factorial(n-r))%3B%0A%20%0A%20%20%20return%20result%3B%0A%7D%0A%20%0Along%20find_npr(int%20n%2C%20int%20r)%20%7B%0A%20%20%20long%20result%3B%0A%20%0A%20%20%20result%20%3D%20factorial(n)%2Ffactorial(n-r)%3B%0A%20%0A%20%20%20return%20result%3B%0A%7D%20%0A%20%0Along%20factorial(int%20n)%20%7B%0A%20%20%20int%20c%3B%0A%20%20%20long%20result%20%3D%201%3B%0A%20%0A%20%20%20for%20(c%20%3D%201%3B%20c%20%3C%3D%20n%3B%20c%2B%2B)%0A%20%20%20%20%20%20result%20%3D%20result*c%3B%0A%20%0A%20%20%20return%20result%3B%0A%7D” message=”find nCr using function” highlight=”” provider=”manual”/]

Output of program:

Another way to calculate nPr and nCr using functions

We use long long data type in our program to handle large numbers.

[pastacode lang=”c” manual=”%23include%20%3Cstdio.h%3E%0A%23define%20ll%20long%20long%0A%20%0Avoid%20find_ncr_npr(int%2C%20int%2C%20ll*%2C%20ll*)%3B%0All%20find_npr(int%2C%20int)%3B%0All%20factorial(int)%3B%0A%20%0Aint%20main()%20%7B%0A%20%20%20int%20n%2C%20r%3B%0A%20%20%20ll%20ncr%2C%20npr%3B%0A%20%0A%20%20%20printf(%22Input%20n%20and%20r%5Cn%22)%3B%0A%20%20%20scanf(%22%25d%25d%22%2C%20%26n%2C%20%26r)%3B%0A%20%0A%20%20%20find_ncr_npr(n%2C%20r%2C%20%26npr%2C%20%26ncr)%3B%0A%20%0A%20%20%20printf(%22%25dC%25d%20%3D%20%25lld%5Cn%22%2C%20n%2C%20r%2C%20ncr)%3B%0A%20%20%20printf(%22%25dP%25d%20%3D%20%25lld%5Cn%22%2C%20n%2C%20r%2C%20npr)%3B%0A%20%0A%20%20%20return%200%3B%0A%7D%0A%20%0Avoid%20find_ncr_npr(int%20n%2C%20int%20r%2C%20ll%20*npr%2C%20ll%20*ncr)%20%7B%0A%20%20%20*npr%20%3D%20find_npr(n%2C%20r)%3B%0A%20%20%20*ncr%20%3D%20*npr%2Ffactorial(r)%3B%0A%7D%0A%20%0All%20find_npr(int%20n%2C%20int%20r)%20%7B%0A%20%20%20ll%20result%20%3D%201%3B%0A%20%20%20int%20c%20%3D%201%3B%0A%20%0A%20%20%20while%20(c%20%3C%3D%20r)%20%7B%0A%20%20%20%20%20%20result%20%3D%20result%20*%20(n%20-%20r%20%2B%20c)%3B%0A%20%20%20%20%20%20c%2B%2B%3B%0A%20%20%20%7D%0A%20%0A%20%20%20return%20result%3B%0A%7D%0A%20%0All%20factorial(int%20n)%20%7B%0A%20%20%20int%20c%3B%0A%20%20%20ll%20result%20%3D%201%3B%0A%20%0A%20%20%20for%20(c%20%3D%201%3B%20c%20%3C%3D%20n%3B%20c%2B%2B)%0A%20%20%20%20%20%20result%20%3D%20result*c%3B%0A%20%0A%20%20%20return%20result%3B%0A%7D” message=”” highlight=”” provider=”manual”/] [ad type=”banner”]

Categorized in:

Tagged in:

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,