# Sum of product of consecutive Binomial Coefficients

Given a positive ineteger n. The task is to find the sum of product of consecutive binomial coefficient i.e
nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn

Examples:

```Input : n = 3
Output : 15
3C0*3C1 + 3C1*3C2 +3C2*3C3
= 1*3 + 3*3 + 3*1
= 3 + 9 + 3
= 15

Input : n = 4
Output : 56
```

Method 1: The idea is to find all the binomial coefficients up to nth term and find the sum of the product of consecutive coefficients.

Below is the implementation of this approach:

## C++

 `// CPP Program to find sum of product of ` `// consecutive Binomial Coefficient. ` `#include ` `using` `namespace` `std; ` `#define MAX 100 ` ` `  `// Find the binomial coefficient upto nth term ` `void` `binomialCoeff(``int` `C[], ``int` `n) ` `{ ` `    ``C[0] = 1; ``// nC0 is 1 ` ` `  `    ``for` `(``int` `i = 1; i <= n; i++) { ` ` `  `        ``// Compute next row of pascal triangle using ` `        ``// the previous row ` `        ``for` `(``int` `j = min(i, n); j > 0; j--) ` `            ``C[j] = C[j] + C[j - 1]; ` `    ``} ` `} ` ` `  `// Return the sum of the product of ` `// consecutive binomial coefficient. ` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``int` `sum = 0; ` `    ``int` `C[MAX] = { 0 }; ` ` `  `    ``binomialCoeff(C, n); ` ` `  `    ``// finding the sum of product of  ` `    ``// consecutive coefficient. ` `    ``for` `(``int` `i = 0; i <= n; i++)  ` `        ``sum += C[i] * C[i + 1];     ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driven Program ` `int` `main() ` `{ ` `    ``int` `n = 3; ` `    ``cout << sumOfproduct(n) << endl; ` `    ``return` `0; ` `} `

## Java

 `// Java Program to find sum of product of ` `// consecutive Binomial Coefficient. ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `    `  `static` `int`  `MAX = ``100``; ` ` `  `// Find the binomial coefficient upto nth term ` `static` `void` `binomialCoeff(``int` `C[], ``int` `n) ` `{ ` `    ``C[``0``] = ``1``; ``// nC0 is 1 ` ` `  `    ``for` `(``int` `i = ``1``; i <= n; i++) { ` ` `  `        ``// Compute next row of pascal triangle using ` `        ``// the previous row ` `        ``for` `(``int` `j = Math.min(i, n); j > ``0``; j--) ` `            ``C[j] = C[j] + C[j - ``1``]; ` `    ``} ` `} ` ` `  `// Return the sum of the product of ` `// consecutive binomial coefficient. ` `static` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``int` `sum = ``0``; ` `    ``int` `C[] = ``new` `int``[MAX]; ` ` `  `    ``binomialCoeff(C, n); ` ` `  `    ``// finding the sum of product of  ` `    ``// consecutive coefficient. ` `    ``for` `(``int` `i = ``0``; i <= n; i++)  ` `        ``sum += C[i] * C[i + ``1``];  ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driven Program ` ` `  `    ``public` `static` `void` `main (String[] args) { ` `    ``int` `n = ``3``; ` `    ``System.out.println( sumOfproduct(n)); ` `    ``} ` `} ` `  `  `// This code is contributed by inder_verma.. `

## Python3

 `# Python3 Program to find sum of product  ` `# of consecutive Binomial Coefficient. ` `MAX` `=` `100``; ` ` `  `# Find the binomial coefficient upto  ` `# nth term ` `def` `binomialCoeff(C, n): ` ` `  `    ``C[``0``] ``=` `1``; ``# nC0 is 1 ` ` `  `    ``for` `i ``in` `range``(``1``, n ``+` `1``): ` ` `  `        ``# Compute next row of ` `        ``# pascal triangle using ` `        ``# the previous row ` `        ``for` `j ``in` `range``(``min``(i, n), ``0``, ``-``1``): ` `            ``C[j] ``=` `C[j] ``+` `C[j ``-` `1``]; ` `     `  `    ``return` `C; ` ` `  `# Return the sum of the product of  ` `# consecutive binomial coefficient. ` `def` `sumOfproduct(n): ` ` `  `    ``sum` `=` `0``; ` `    ``C ``=` `[``0``] ``*` `MAX``; ` ` `  `    ``C ``=` `binomialCoeff(C, n); ` ` `  `    ``# finding the sum of  ` `    ``# product of consecutive ` `    ``# coefficient. ` `    ``for` `i ``in` `range``(n ``+` `1``):  ` `        ``sum` `+``=` `C[i] ``*` `C[i ``+` `1``];  ` ` `  `    ``return` `sum``; ` ` `  `# Driver Code ` `n ``=` `3``; ` `print``(sumOfproduct(n)); ` ` `  `# This code is contributed by mits `

## C#

 `// C# Program to find sum of  ` `// product of consecutive ` `// Binomial Coefficient. ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `static` `int` `MAX = 100; ` ` `  `// Find the binomial coefficient ` `// upto nth term ` `static` `void` `binomialCoeff(``int` `[]C, ``int` `n) ` `{ ` `    ``C[0] = 1; ``// nC0 is 1 ` ` `  `    ``for` `(``int` `i = 1; i <= n; i++)  ` `    ``{ ` ` `  `        ``// Compute next row of pascal  ` `        ``// triangle using the previous row ` `        ``for` `(``int` `j = Math.Min(i, n);  ` `                 ``j > 0; j--) ` `            ``C[j] = C[j] + C[j - 1]; ` `    ``} ` `} ` ` `  `// Return the sum of the product of ` `// consecutive binomial coefficient. ` `static` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``int` `sum = 0; ` `    ``int` `[]C = ``new` `int``[MAX]; ` ` `  `    ``binomialCoeff(C, n); ` ` `  `    ``// finding the sum of product of  ` `    ``// consecutive coefficient. ` `    ``for` `(``int` `i = 0; i <= n; i++)  ` `        ``sum += C[i] * C[i + 1];  ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driven Code ` `public` `static` `void` `Main () ` `{ ` `    ``int` `n = 3; ` `    ``Console.WriteLine(sumOfproduct(n)); ` `} ` `} ` ` `  `// This code is contributed by anuj_67 `

## PHP

 ` 0; ``\$j``--) ` `            ``\$C``[``\$j``] = ``\$C``[``\$j``] + ` `                     ``\$C``[``\$j` `- 1]; ` `    ``} ` `    ``return` `\$C``; ` `} ` ` `  `// Return the sum of the  ` `// product of consecutive  ` `// binomial coefficient. ` `function` `sumOfproduct(``\$n``) ` `{ ` `    ``global` `\$MAX``; ` `    ``\$sum` `= 0; ` `    ``\$C` `= ``array_fill``(0, ``\$MAX``, 0); ` ` `  `    ``\$C` `= binomialCoeff(``\$C``, ``\$n``); ` ` `  `    ``// finding the sum of  ` `    ``// product of consecutive ` `    ``// coefficient. ` `    ``for` `(``\$i` `= 0; ``\$i` `<= ``\$n``; ``\$i``++)  ` `        ``\$sum` `+= ``\$C``[``\$i``] * ``\$C``[``\$i` `+ 1];  ` ` `  `    ``return` `\$sum``; ` `} ` ` `  `// Driver Code ` `\$n` `= 3; ` `echo` `sumOfproduct(``\$n``); ` ` `  `// This code is contributed by mits ` `?> `

Output

`15`

Method 2:
We know,
(1 + x)n = nC0 + nC1*x + nC2*x2 + …. + nCn*xn … (1)

(1 + 1/x)n = nC0 + nC1/x + nC2/x2 + …. + nCn/xn … (2)

Multiplying (1) and (2), we get
(1 + x)2n/xn = (nC0 + nC1*x + nC2*x2 + …. + nCn*xn) * (nC0 + nC1/x + nC2/x2 + …. + nCn/xn)

(2nC0 + 2nC1*x + 2nC2*x2 + …. + 2nCn*xn)/xn = (nC0 + nC1*x + nC2*x2 + …. + nCn*xn) * (nC0 + nC1/x + nC2/x2 + …. + nCn/xn)

Now, find the coefficient of x in LHS,
Observe rth term of expansion in numerator is 2nCrxr.
To find the coefficient of x in (1 + x)2n/xn, r should be n + 1, because power of x in denominator will reduce it.
So, coefficient of x in LHS = 2nCn + 1 or 2nCn – 1

Now, find the coefficient of x in RHS,
r th term of first expansion of multiplication is nCr * xr
t th term of second expansion of multiplication is nCt / xt
So term after multiply will be nCr * xr * nCt / xt or
nCr * nCt * xr / xt
Put r = t + 1, we get,
nCt+1 * nCt * x
Observe there will be n such term in the expansion of multiply, so t range from 0 to n – 1.
Therefor, coefficient of x in RHS = nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn

Comparing coefficient of x in LHS and RHS, we can say,
nC0*nC1 + nC1*nC2 + ….. + nCn-1*nCn = 2nCn – 1

Below is implementation of this approach:

## C++

 `// CPP Program to find sum of product of  ` `// consecutive Binomial Coefficient. ` `#include ` `using` `namespace` `std; ` `#define MAX 100 ` ` `  `// Find the binomial coefficient up to nth  ` `// term ` `int` `binomialCoeff(``int` `n, ``int` `k) ` `{ ` `    ``int` `C[k + 1]; ` `    ``memset``(C, 0, ``sizeof``(C)); ` ` `  `    ``C[0] = 1; ``// nC0 is 1 ` ` `  `    ``for` `(``int` `i = 1; i <= n; i++) { ` ` `  `        ``// Compute next row of pascal triangle  ` `        ``// using the previous row ` `        ``for` `(``int` `j = min(i, k); j > 0; j--) ` `            ``C[j] = C[j] + C[j - 1]; ` `    ``} ` `    ``return` `C[k]; ` `} ` ` `  `// Return the sum of the product of ` `// consecutive binomial coefficient. ` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``return` `binomialCoeff(2 * n, n - 1); ` `} ` ` `  `// Driven Program ` `int` `main() ` `{ ` `    ``int` `n = 3; ` ` `  `    ``cout << sumOfproduct(n) << endl; ` `    ``return` `0; ` `} `

## Java

 `// Java Program to find sum of  ` `// product of consecutive  ` `// Binomial Coefficient. ` `import` `java.io.*; ` ` `  `class` `GFG  ` `{ ` `    ``static` `int` `MAX = ``100``; ` `     `  `    ``// Find the binomial coefficient  ` `    ``// up to nth term ` `    ``static` `int` `binomialCoeff(``int` `n,  ` `                             ``int` `k) ` `    ``{ ` `        ``int` `C[] = ``new` `int``[k + ``1``]; ` `         `  `        ``// memset(C, 0, sizeof(C)); ` `        ``C[``0``] = ``1``; ``// nC0 is 1 ` ` `  `        ``for` `(``int` `i = ``1``; i <= n; i++)  ` `        ``{ ` ` `  `            ``// Compute next row of  ` `            ``// pascal triangle  ` `            ``// using the previous row ` `            ``for` `(``int` `j = Math.min(i, k); j > ``0``; j--) ` `                ``C[j] = C[j] + C[j - ``1``]; ` `    ``} ` `     `  `    ``return` `C[k]; ` `} ` ` `  `// Return the sum of the  ` `// product of consecutive ` `// binomial coefficient. ` `static` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``return` `binomialCoeff(``2` `* n,  ` `                         ``n - ``1``); ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main (String[] args)  ` `{ ` `    ``int` `n = ``3``; ` `    ``System.out.println(sumOfproduct(n)); ` `} ` `} ` ` `  `// This code is contributed ` `// by shiv_bhakt. `

## Python3

 `# Python3 Program to find sum of product  ` `# of consecutive Binomial Coefficient. ` `MAX` `=` `100``; ` ` `  `# Find the binomial coefficient  ` `# up to nth term ` `def` `binomialCoeff(n, k): ` ` `  `    ``C ``=` `[``0``] ``*` `(k ``+` `1``); ` ` `  `    ``C[``0``] ``=` `1``; ``# nC0 is 1 ` ` `  `    ``for` `i ``in` `range``(``1``, n ``+` `1``):  ` ` `  `        ``# Compute next row of pascal triangle  ` `        ``# using the previous row ` `        ``for` `j ``in` `range``(``min``(i, k), ``0``, ``-``1``): ` `            ``C[j] ``=` `C[j] ``+` `C[j ``-` `1``]; ` `    ``return` `C[k]; ` ` `  `# Return the sum of the product of ` `# consecutive binomial coefficient. ` `def` `sumOfproduct(n): ` `    ``return` `binomialCoeff(``2` `*` `n, n ``-` `1``); ` ` `  `# Driver Code ` `n ``=` `3``; ` `print``(sumOfproduct(n)); ` ` `  `# This code is contributed by mits `

## C#

 `// C# Program to find sum of  ` `// product of consecutive  ` `// Binomial Coefficient. ` `using` `System; ` ` `  `class` `GFG ` `{ ` `     `  `    ``// Find the binomial  ` `    ``// coefficient up to  ` `    ``// nth term ` `    ``static` `int` `binomialCoeff(``int` `n,  ` `                             ``int` `k) ` `    ``{ ` `        ``int` `[]C = ``new` `int``[k + 1]; ` `         `  `        ``// memset(C, 0, sizeof(C)); ` `        ``C[0] = 1; ``// nC0 is 1 ` ` `  `        ``for` `(``int` `i = 1; i <= n; i++)  ` `        ``{ ` ` `  `            ``// Compute next row of  ` `            ``// pascal triangle  ` `            ``// using the previous row ` `            ``for` `(``int` `j = Math.Min(i, k);  ` `                             ``j > 0; j--) ` `                ``C[j] = C[j] + C[j - 1]; ` `    ``} ` `     `  `    ``return` `C[k]; ` `} ` ` `  `// Return the sum of the  ` `// product of consecutive ` `// binomial coefficient. ` `static` `int` `sumOfproduct(``int` `n) ` `{ ` `    ``return` `binomialCoeff(2 * n,  ` `                         ``n - 1); ` `} ` ` `  `// Driver Code ` `static` `public` `void` `Main () ` `{ ` `    ``int` `n = 3; ` `    ``Console.WriteLine(sumOfproduct(n)); ` `} ` `} ` ` `  `// This code is contributed ` `// by @ajit. `

## PHP

 ` 0; ``\$j``--) ` `            ``\$C``[``\$j``] = ``\$C``[``\$j``] + ``\$C``[``\$j` `- 1]; ` `    ``} ` `    ``return` `\$C``[``\$k``]; ` `} ` ` `  `// Return the sum of the product of ` `// consecutive binomial coefficient. ` `function` `sumOfproduct(``\$n``) ` `{ ` `    ``return` `binomialCoeff(2 * ``\$n``, ``\$n` `- 1); ` `} ` ` `  `// Driver Code ` `\$n` `= 3; ` `echo` `sumOfproduct(``\$n``); ` ` `  `// This code is contributed by mits ` `?> `

Output:

`15`

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.