# Lobb Number

In combinatorial mathematics, the Lobb number Lm, n counts the number of ways that n + m open parentheses can be arranged to form the start of a valid sequence of balanced parentheses.
The Lobb number are parameterized by two non-negative integers m and n with n >= m >= 0. It can be obtained by:

Lobb Number is also used to count the number of ways in which n + m copies of the value +1 and n – m copies of the value -1 may be arranged into a sequence such that all of the partial sums of the sequence are non- negative.

Examples :

```Input : n = 3, m = 2
Output : 5

Input : n =5, m =3
Output :35
```

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

The idea is simple, we use a function that computes binomial coefficients for given values. Using this function and above formula, we can compute Lobb numbers.

## C++

 `// CPP Program to find Ln, m Lobb Number. ` `#include ` `#define MAXN 109 ` `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 the Lm, n Lobb Number. ` `int` `lobb(``int` `n, ``int` `m) ` `{ ` `    ``return` `((2 * m + 1) * binomialCoeff(2 * n, m + n)) / (m + n + 1); ` `} ` ` `  `// Driven Program ` `int` `main() ` `{ ` `    ``int` `n = 5, m = 3; ` `    ``cout << lobb(n, m) << endl; ` `    ``return` `0; ` `} `

/div>

## Java

 `// JAVA Code For Lobb Number ` `import` `java.util.*; ` ` `  `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 the Lm, n Lobb Number. ` `    ``static` `int` `lobb(``int` `n, ``int` `m) ` `    ``{ ` `        ``return` `((``2` `* m + ``1``) * binomialCoeff(``2` `* n, m + n)) /  ` `                                             ``(m + n + ``1``); ` `    ``} ` `     `  `    ``/* Driver program to test above function */` `    ``public` `static` `void` `main(String[] args)  ` `    ``{ ` `        ``int` `n = ``5``, m = ``3``; ` `        ``System.out.println(lobb(n, m)); ` `         `  `    ``} ` `} ` ` `  `// This code is contributed by Arnav Kr. Mandal. `

## Python 3

 `# Python 3 Program to find Ln,  ` `# m Lobb Number. ` ` `  `# Returns value of Binomial ` `# Coefficient C(n, k) ` `def` `binomialCoeff(n, k): ` ` `  `    ``C ``=` `[[``0` `for` `j ``in` `range``(k ``+` `1``)]  ` `             ``for` `i ``in` `range``(n ``+` `1``)] ` ` `  ` `  `    ``# Calculate value of Binomial  ` `    ``# Coefficient in bottom up manner ` `    ``for` `i ``in` `range``(``0``, n ``+` `1``):  ` `        ``for` `j ``in` `range``(``0``, ``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 the Lm, n Lobb Number. ` `def` `lobb(n, m): ` ` `  `    ``return` `(((``2` `*` `m ``+` `1``) ``*`  `        ``binomialCoeff(``2` `*` `n, m ``+` `n))  ` `                      ``/` `(m ``+` `n ``+` `1``)) ` ` `  `# Driven Program ` `n ``=` `5` `m ``=` `3` `print``(``int``(lobb(n, m))) ` ` `  `# This code is contributed by ` `# Smitha Dinesh Semwal `

## C#

 `// C# Code For Lobb Number ` `using` `System; ` ` `  `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 the Lm, n Lobb Number. ` `    ``static` `int` `lobb(``int` `n, ``int` `m) ` `    ``{ ` `        ``return` `((2 * m + 1) * binomialCoeff( ` `                 ``2 * n, m + n)) / (m + n + 1); ` `    ``} ` ` `  `    ``/* Driver program to test above function */` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 5, m = 3; ` `         `  `        ``Console.WriteLine(lobb(n, m)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

```35
```