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



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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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); 
}
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
chevron_right

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 :