# Maximum binomial coefficient term value

• Last Updated : 01 May, 2021

Given a positive integer n. The task is to find the maximum coefficient term in all binomial coefficient.
The binomial coefficient series is
nC0, nC1, nC2, …., nCr, …., nCn-2, nCn-1, nCn
the task is to find maximum value of nCr.

Examples:

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

```Input : n = 4
Output : 6
4C0 = 1
4C1 = 4
4C2 = 6
4C3 = 1
4C4 = 1
So, maximum coefficient value is 6.

Input : n = 3
Output : 3```

Method 1: (Brute Force)
The idea is to find all the value of binomial coefficient series and find the maximum value in the series.

Below is the implementation of this approach:

## C++

 `// CPP Program to find maximum binomial coefficient``// term``#include``using` `namespace` `std;` `// Return maximum binomial coefficient term value.``int` `maxcoefficientvalue(``int` `n)``{``    ``int` `C[n+1][n+1];`` ` `    ``// Calculate value of Binomial Coefficient in``    ``// bottom up manner``    ``for` `(``int` `i = 0; i <= n; i++)``    ``{``        ``for` `(``int` `j = 0; j <= min(i, n); 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];``        ``}``    ``}``        ` `    ``// finding the maximum value.``    ``int` `maxvalue = 0;``    ``for` `(``int` `i = 0; i <= n; i++)``        ``maxvalue = max(maxvalue, C[n][i]);``        ` `    ``return` `maxvalue;``}` `// Driven Program``int` `main()``{``    ``int` `n = 4;``    ``cout << maxcoefficientvalue(n) << endl;``    ``return` `0;``}`

## Java

 `// Java Program to find``// maximum binomial``// coefficient term``import` `java.io.*;` `class` `GFG``{``// Return maximum binomial``// coefficient term value.``static` `int` `maxcoefficientvalue(``int` `n)``{``    ``int` `[][]C = ``new` `int``[n + ``1``][n + ``1``];` `    ``// Calculate value of``    ``// Binomial Coefficient ``    ``// in bottom up manner``    ``for` `(``int` `i = ``0``; i <= n; i++)``    ``{``        ``for` `(``int` `j = ``0``;``                 ``j <= Math.min(i, n); 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];``        ``}``    ``}``        ` `    ``// finding the``    ``// maximum value.``    ``int` `maxvalue = ``0``;``    ` `    ``for` `(``int` `i = ``0``; i <= n; i++)``        ``maxvalue = Math.max(maxvalue, C[n][i]);``        ` `    ``return` `maxvalue;``}` `// Driver Code``public` `static` `void` `main (String[] args)``{``    ``int` `n = ``4``;``    ``System.out.println(maxcoefficientvalue(n));``}``}` `// This code is contributed by ajit`

## Python3

 `# Python3 Program to find``# maximum binomial``# coefficient term` `# Return maximum binomial``# coefficient term value.``def` `maxcoefficientvalue(n):``    ``C ``=` `[[``0` `for` `x ``in` `range``(n ``+` `1``)]``            ``for` `y ``in` `range``(n ``+` `1``)];``            ` `    ``# Calculate value of``    ``# Binomial Coefficient in``    ``# bottom up manner``    ``for` `i ``in` `range``(n ``+` `1``):``        ``for` `j ``in` `range``(``min``(i, n) ``+` `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]);``    ` `    ``# finding the maximum value.``    ``maxvalue ``=` `0``;``    ``for` `i ``in` `range``(n ``+` `1``):``        ``maxvalue ``=` `max``(maxvalue, C[n][i]);``    ` `    ``return` `maxvalue;` `# Driver Code``n ``=` `4``;``print``(maxcoefficientvalue(n));` `# This code is contributed by mits`

## C#

 `// C# Program to find maximum binomial coefficient``// term``using` `System;` `public` `class` `GFG {``        ` `    ``// Return maximum binomial coefficient term value.``    ``static` `int` `maxcoefficientvalue(``int` `n)``    ``{``        ``int` `[,]C = ``new` `int``[n+1,n+1];``    ` `        ``// Calculate value of Binomial Coefficient in``        ``// bottom up manner``        ``for` `(``int` `i = 0; i <= n; i++)``        ``{``            ``for` `(``int` `j = 0; j <= Math.Min(i, n); 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];``            ``}``        ``}``            ` `        ``// finding the maximum value.``        ``int` `maxvalue = 0;``        ` `        ``for` `(``int` `i = 0; i <= n; i++)``            ``maxvalue = Math.Max(maxvalue, C[n,i]);``            ` `        ``return` `maxvalue;``    ``}``    ` `    ``// Driven Program` `    ``static` `public` `void` `Main ()``    ``{``        ` `        ``int` `n = 4;``        ` `        ``Console.WriteLine(maxcoefficientvalue(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`6`

Method 2: (Using formula)

Proof,

Expansion of (x + y)n are:
nC0 xn y0, nC1 xn-1 y1, nC2 xn-2 y2, …., nCr xn-r yr, …., nCn-2 x2 yn-2, nCn-1 x1 yn-1, nCn x0 yn
So, putting x = 1 and y = 1, we get binomial coefficient,
nC0, nC1, nC2, …., nCr, …., nCn-2, nCn-1, nCn
Let term ti+1 contains the greatest value in (x + y)n. Therefore,
tr+1 >= tr
nCr xn-r yr >= nCr-1 xn-r+1 yr-1
Putting x = 1 and y = 1,
nCr >= nCr-1
nCr/nCr-1 >= 1
(using nCr/nCr-1 = (n-r+1)/r)
(n-r+1)/r >= 1
(n+1)/r – 1 >= 1
(n+1)/r >= 2
(n+1)/2 >= r
Therefore, r should be less than equal to (n+1)/2.
And r should be integer. So, we get maximum coefficient for r equals to:
(1) n/2, when n is even.
(2) (n+1)/2 or (n-1)/2, when n is odd.

## C++

 `// CPP Program to find maximum binomial coefficient term``#include``using` `namespace` `std;` `// Returns value of Binomial Coefficient C(n, k)``int` `binomialCoeff(``int` `n, ``int` `k)``{``    ``int` `C[n+1][k+1];`` ` `    ``// Calculate value of Binomial Coefficient``    ``// in bottom up manner``    ``for` `(``int` `i = 0; i <= n; i++)``    ``{``        ``for` `(``int` `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];``}` `// Return maximum binomial coefficient term value.``int` `maxcoefficientvalue(``int` `n)``{``    ``// if n is even``    ``if` `(n%2 == 0)``        ``return` `binomialCoeff(n, n/2);``        ` `    ``// if n is odd``    ``else``        ``return` `binomialCoeff(n, (n+1)/2);``}` `// Driven Program``int` `main()``{``    ``int` `n = 4;``    ``cout << maxcoefficientvalue(n) << endl;``    ``return` `0;``}`

## Java

 `// Java Program to find``// maximum binomial``// coefficient term``import` `java.io.*;` `class` `GFG``{``            ` `    ``// Returns value of``    ``// Binomial Coefficient``    ``// C(n, k)``    ``static` `int` `binomialCoeff(``int` `n,``                             ``int` `k)``    ``{``        ``int` `[][]C = ``new` `int``[n + ``1``][k + ``1``];``    ` `        ``// Calculate value of``        ``// Binomial Coefficient``        ``// in bottom up manner``        ``for` `(``int` `i = ``0``; i <= n; i++)``        ``{``            ``for` `(``int` `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];``    ``}``    ` `    ``// Return maximum``    ``// binomial coefficient``    ``// term value.``    ``static` `int` `maxcoefficientvalue(``int` `n)``    ``{``        ` `        ``// if n is even``        ``if` `(n % ``2` `== ``0``)``            ``return` `binomialCoeff(n, n / ``2``);``            ` `        ``// if n is odd``        ``else``            ``return` `binomialCoeff(n, (n + ``1``) / ``2``);``    ``}``    ` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `n = ``4``;``    ` `        ``System.out.println(maxcoefficientvalue(n));``    ``}``}` `// This code is contributed``// by akt_mit`

## Python3

 `# Python3 Program to find``# maximum binomial``# coefficient term``# Returns value of``# Binomial Coefficient C(n, k)``def` `binomialCoeff(n, k):` `    ``C``=``[[``0` `for` `x ``in` `range``(k``+``1``)] ``for` `y ``in` `range``(n``+``1``)]` `    ``# 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];`  `# Return maximum binomial``# coefficient term value.``def` `maxcoefficientvalue(n):``    ``# if n is even``    ``if` `(n ``%` `2` `=``=` `0``):``        ``return` `binomialCoeff(n, ``int``(n ``/` `2``));``        ` `    ``# if n is odd``    ``else``:``        ``return` `binomialCoeff(n, ``int``((n ``+` `1``) ``/` `2``));` `# Driver Code``if` `__name__``=``=``'__main__'``:``    ``n ``=` `4``;``    ``print``(maxcoefficientvalue(n));` `# This code is contributed by mits`

## C#

 `// C# Program to find maximum binomial``// coefficient term``using` `System;` `public` `class` `GFG {``        ` `    ``// Returns value of Binomial Coefficient``    ``// C(n, k)``    ``static` `int` `binomialCoeff(``int` `n, ``int` `k)``    ``{``        ``int` `[,]C = ``new` `int``[n+1,k+1];``    ` `        ``// Calculate value of Binomial``        ``// Coefficient in bottom up manner``        ``for` `(``int` `i = 0; i <= n; i++)``        ``{``            ``for` `(``int` `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];``    ``}``    ` `    ``// Return maximum binomial coefficient``    ``// term value.``    ``static` `int` `maxcoefficientvalue(``int` `n)``    ``{``        ` `        ``// if n is even``        ``if` `(n % 2 == 0)``            ``return` `binomialCoeff(n, n/2);``            ` `        ``// if n is odd``        ``else``            ``return` `binomialCoeff(n, (n + 1) / 2);``    ``}``    ` `    ``// Driven Program``    ``static` `public` `void` `Main ()``    ``{``        ` `        ``int` `n = 4;``        ` `        ``Console.WriteLine(maxcoefficientvalue(n));``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`6`

My Personal Notes arrow_drop_up