Central binomial coefficient

Last Updated : 15 Jul, 2025

Given an integer N, the task is to find the N^{th}    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: 
N^{th}    Central Binomial Coefficient = \binom{2N}{N}    \binom{2*3}{3}    \frac{6*5*4}{3*2*1}    = 20
Input: N = 2 
Output:
 


 


Approach: The central binomial coefficient is a binomial coefficient of the form \binom{2N}{N}    . The Binomial Coefficient \binom{2N}{N}    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: 
\binom{2N}{N}    \binom{2*3}{3}    \frac{6*5*4}{3*2*1}    = 20 
 


Below is the implementation of the above approach:
 

C++
// C++ implementation to find the 
// Nth Central Binomial Coefficient

#include<bits/stdc++.h> 
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
<script>

// Javascript implementation to find the 
// Nth Central Binomial Coefficient

// Function to find the value of 
// Nth Central Binomial Coefficient
function binomialCoeff(n, k) 
{ 
    var C = Array.from(Array(n+1),()=> Array(k+1)); 
    var 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 
var n = 3;
var k = n;
n = 2*n;
document.write( binomialCoeff(n, k)); 


</script>

Output: 
20

 

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

Comment