GFG App
Open App
Browser
Continue

# Sum of binomial coefficients (nCr) in a given range

Given three values, N, L and R, the task is to calculate the sum of binomial coefficients (nCr) for all values of r from L to R.

Examples:

Input: N = 5, L = 0, R = 3
Output: 26
Explanation: Sum of 5C0 + 5C1 + 5C2 + 5C3 = 1 + 5 + 10 + 10 = 26.

Input: N = 3, L = 3, R = 3
Output: 1

Approach(Using factorial function): Solve this problem by straightforward calculating nCr by using the formula n! / (r!(n−r)!) and calculating factorial recursively for every value of r from L to R.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `// Function to find the factorial ` `// of a given number` `long` `long` `factorial(``long` `long` `num)` `{` `    ``if` `(num == 0 || num == 1)` `        ``return` `1;` `    ``else` `        ``return` `num * factorial(num - 1);` `}`   `// Function to calculate the sum ` `// of binomial coefficients(nCr) for ` `// all values of r from L to R` `long` `long` `sumOfnCr(``int` `n, ``int` `R, ``int` `L)` `{` `    ``long` `long` `r;` `    ``long` `long` `res = 0;`   `    ``for` `(r = L; r <= R; r++)` `        ``res += (factorial(n)` `                ``/ (factorial(r) ` `                   ``* factorial(n - r)));`   `    ``return` `res;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `N = 5, L = 0, R = 3;` `    ``cout << sumOfnCr(N, R, L);` `    ``return` `0;` `}`

## Java

 `// JAVA program for the above approach` `import` `java.io.*;`   `class` `GFG {`   `    ``// Function to find the factorial` `    ``// of a given number` `    ``static` `long` `factorial(``long` `num)` `    ``{` `        ``if` `(num == ``0` `|| num == ``1``)` `            ``return` `1``;` `        ``else` `            ``return` `num * factorial(num - ``1``);` `    ``}`   `    ``// Function to calculate the sum` `    ``// of binomial coefficients(nCr) for` `    ``// all values of r from L to R` `    ``static` `long` `sumOfnCr(``int` `n, ``int` `R, ``int` `L)` `    ``{` `        ``long` `r;` `        ``long` `res = ``0``;`   `        ``for` `(r = L; r <= R; r++)` `            ``res += (factorial(n)` `                    ``/ (factorial(r) * factorial(n - r)));`   `        ``return` `res;` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``int` `N = ``5``, L = ``0``, R = ``3``;` `        ``long` `ans = sumOfnCr(N, R, L);` `        ``System.out.println(ans);` `    ``}` `}`   `// This code is contributed by Taranpreet`

## Python3

 `# Python code for the above approach `   `# Function to find the factorial ` `# of a given number` `def` `factorial(num):` `    ``if` `(num ``=``=` `0` `or` `num ``=``=` `1``):` `        ``return` `1``;` `    ``else``:` `        ``return` `num ``*` `factorial(num ``-` `1``);`   `# Function to calculate the sum ` `# of binomial coefficients(nCr) for ` `# all values of r from L to R` `def` `sumOfnCr(n, R, L):` `    ``res ``=` `0``;`   `    ``for` `r ``in` `range``(L, R ``+` `1``):` `        ``res ``+``=` `(factorial(n) ``/` `(factorial(r) ``*` `factorial(n ``-` `r)));`   `    ``return` `res;`   `# Driver Code` `N ``=` `5` `L ``=` `0` `R ``=` `3``;` `print``((``int``)(sumOfnCr(N, R, L)))`   `# This code is contributed by gfgking`

## C#

 `// C# program for the above approach` `using` `System;` `class` `GFG {`   `  ``// Function to find the factorial` `  ``// of a given number` `  ``static` `long` `factorial(``long` `num)` `  ``{` `    ``if` `(num == 0 || num == 1)` `      ``return` `1;` `    ``else` `      ``return` `num * factorial(num - 1);` `  ``}`   `  ``// Function to calculate the sum` `  ``// of binomial coefficients(nCr) for` `  ``// all values of r from L to R` `  ``static` `long` `sumOfnCr(``int` `n, ``int` `R, ``int` `L)` `  ``{` `    ``long` `r;` `    ``long` `res = 0;`   `    ``for` `(r = L; r <= R; r++)` `      ``res += (factorial(n)` `              ``/ (factorial(r) * factorial(n - r)));`   `    ``return` `res;` `  ``}`   `  ``// Driver Code` `  ``public` `static` `void` `Main()` `  ``{` `    ``int` `N = 5, L = 0, R = 3;` `    ``Console.Write(sumOfnCr(N, R, L));` `  ``}` `}`   `// This code is contributed by ukasp.`

## Javascript

 ``

Output

`26`

Time Complexity: O(N * (R – L))
Auxiliary Space: O(N)

Approach (Without using factorial function): This approach for finding the sum of binomial coefficients (nCr) for all values of r from L to R can be implemented using two nested loops. The outer loop will iterate from L to R, and the inner loop will calculate the binomial coefficient for each value of r using the formula:

nCr = n! / (r! * (n-r)!)

where n is the given number, r is the current value of the inner loop, and ! denotes the factorial function.

The sum of all binomial coefficients can be accumulated in a variable initialized to zero before the loops start.

Steps to implement the above approach:

• Declare and initialize the variables N, L, and R  respectively.
• Call the sumOfnCr function, passing N, R, and L as arguments.
• Within the sumOfnCr function, declare a long long variable named res and initialize it to 0.
• Start a for loop with a variable r, which runs from L to R.
• Within the for loop, declare a long long variable named nCr and initialize it to 1.
• Start another for loop with a variable i, which runs from 1 to r.
• Within the inner for loop, multiply nCr by (n-i+1) and then divide it by i.
• After the inner for loop ends, add nCr to the res variable.
• After the outer for loop ends, return the res variable.
• End the sumOfnCr function.
• Print the result of the sumOfnCr function using cout.

## C++

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `// Function to calculate the sum` `// of binomial coefficients(nCr) for` `// all values of r from L to R` `long` `long` `sumOfnCr(``int` `n, ``int` `R, ``int` `L)` `{` `    ``long` `long` `res = 0;`   `    ``for` `(``int` `r = L; r <= R; r++) {` `        ``long` `long` `nCr = 1;` `        ``for` `(``int` `i = 1; i <= r; i++) {` `            ``nCr *= (n - i + 1);` `            ``nCr /= i;` `        ``}` `        ``res += nCr;` `    ``}`   `    ``return` `res;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `N = 5, L = 0, R = 3;` `    ``cout << sumOfnCr(N, R, L);` `    ``return` `0;` `}`

## Python3

 `# Function to calculate the sum` `# of binomial coefficients(nCr) for` `# all values of r from L to R`     `def` `sumOfnCr(n, R, L):` `    ``res ``=` `0` `    ``for` `r ``in` `range``(L, R``+``1``):` `        ``nCr ``=` `1` `        ``for` `i ``in` `range``(``1``, r``+``1``):` `            ``nCr ``*``=` `(n ``-` `i ``+` `1``)` `            ``nCr ``/``/``=` `i` `        ``res ``+``=` `nCr` `    ``return` `res`     `# Driver Code` `N ``=` `5` `L ``=` `0` `R ``=` `3`   `print``(sumOfnCr(N, R, L))`

## Javascript

 `// Javascript code addition `   `// Function to calculate the sum` `// of binomial coefficients(nCr) for` `// all values of r from L to R` `function` `sumOfnCr(n, R, L) {` `  ``let res = 0;`   `  ``for` `(let r = L; r <= R; r++) {` `    ``let nCr = 1;` `    ``for` `(let i = 1; i <= r; i++) {` `      ``nCr *= (n - i + 1);` `      ``nCr /= i;` `    ``}` `    ``res += nCr;` `  ``}`   `  ``return` `res;` `}`   `// Driver Code` `let N = 5, L = 0, R = 3;` `console.log(sumOfnCr(N, R, L));`   `// The code is contributed by Nidhi goel.`

Output

`26`

Time Complexity: O(N * (R – L))
Auxiliary Space: O(N)

My Personal Notes arrow_drop_up