GFG App
Open App
Browser
Continue

# Central binomial coefficient

Given an integer N, the task is to find the Central binomial coefficient
The first few Central binomial coefficients for N = 0, 1, 2, 3… are

1, 2, 6, 20, 70, 252, 924, 3432…..

Examples:

Input: N = 3
Output: 20
Explanation:
Central Binomial Coefficient = = 20
Input: N = 2
Output:

Approach: The central binomial coefficient is a binomial coefficient of the form . The Binomial Coefficient can be computed using this approach for a given value N using Dynamic Programming.
For Example:

Central binomial coefficient of N = 3 is given by:
= 20

Below is the implementation of the above approach:

## C++

 // C++ implementation to find the  // Nth Central Binomial Coefficient   #include  using namespace std;    // Function to find the value of  // Nth Central Binomial Coefficient int binomialCoeff(int n, int k)  {      int C[n + 1][k + 1];      int i, j;        // Calculate value of Binomial     // Coefficient in bottom up manner      for (i = 0; i <= n; i++)      {          for (j = 0; j <= min(i, k); j++)          {              // Base Cases              if (j == 0 || j == i)                  C[i][j] = 1;                // Calculate value              // using previously              // stored values              else                 C[i][j] = C[i - 1][j - 1] +                          C[i - 1][j];          }      }        return C[n][k];  }    // Driver Code  int main()  {      int n = 3;     int k = n;     n = 2*n;     cout << binomialCoeff(n, k);  }

## Java

 // Java implementation to find the  // Nth Central Binomial Coefficient class GFG{       // Function to find the value of  // Nth Central Binomial Coefficient static int binomialCoeff(int n, int k)  {      int[][] C = new int[n + 1][k + 1];      int i, j;        // Calculate value of Binomial     // Coefficient in bottom up manner      for(i = 0; i <= n; i++)      {         for(j = 0; j <= Math.min(i, k); j++)         {                         // Base Cases            if (j == 0 || j == i)                C[i][j] = 1;                        // Calculate value            // using previously            // stored values            else               C[i][j] = C[i - 1][j - 1] +                          C[i - 1][j];         }      }      return C[n][k];  }    // Driver Code  public static void main(String[] args) {      int n = 3;     int k = n;     n = 2 * n;           System.out.println(binomialCoeff(n, k));  } }   // This code is contributed by Ritik Bansal

## Python3

 # C# implementation to find the  # Nth Central Binomial Coefficient   # Function to find the value of  # Nth Central Binomial Coefficient def binomialCoeff(n, k):           C = [[0 for j in range(k + 1)]              for i in range(n + 1)]           i = 0     j = 0           # Calculate value of Binomial     # Coefficient in bottom up manner     for i in range(n + 1):         for j in range(min(i, k) + 1):                           # Base Cases             if j == 0 or j == i:                 C[i][j] = 1                               # Calculate value              # using previously              # stored values              else:                 C[i][j] = (C[i - 1][j - 1] +                            C[i - 1][j])           return C[n][k]       # Driver code if __name__=='__main__':           n = 3     k = n     n = 2 * n           print(binomialCoeff(n, k))           # This code is contributed by rutvik_56

## C#

 // C# implementation to find the  // Nth Central Binomial Coefficient using System; class GFG{       // Function to find the value of  // Nth Central Binomial Coefficient static int binomialCoeff(int n, int k)  {      int [,]C = new int[n + 1, k + 1];      int i, j;        // Calculate value of Binomial     // Coefficient in bottom up manner      for(i = 0; i <= n; i++)      {         for(j = 0; j <= Math.Min(i, k); j++)        {                        // Base Cases            if (j == 0 || j == i)                C[i, j] = 1;                            // Calculate value            // using previously            // stored values            else               C[i, j] = C[i - 1, j - 1] +                          C[i - 1, j];         }      }      return C[n, k];  }    // Driver Code  public static void Main() {      int n = 3;     int k = n;     n = 2 * n;           Console.Write(binomialCoeff(n, k));  } }   // This code is contributed by Code_Mech

## Javascript

 

Output:

20

Time Complexity: O(N * K)
Auxiliary Space: O(N * K)

My Personal Notes arrow_drop_up