# 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 Cofficient = = = = 20

Input: N = 2
Output: 6

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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++ 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 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

 # 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# 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

Output:
20


Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

Article Tags :
Practice Tags :