Related Articles

# C# Program for nth Catalan Number

• Last Updated : 02 Jan, 2019

Catalan numbers are a sequence of natural numbers that occurs in many interesting counting problems like following.

1) Count the number of expressions containing n pairs of parentheses which are correctly matched. For n = 3, possible expressions are ((())), ()(()), ()()(), (())(), (()()).

2) Count the number of possible Binary Search Trees with n keys (See this)
See this for more applications.

The first few Catalan numbers for n = 0, 1, 2, 3, … are 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, …

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Recursive Solution
Catalan numbers satisfy the following recursive formula. Following is the implementation of above recursive formula.

## C#

 // A recursive C# program to find// nth catalan numberusing System;  class GFG {      // A recursive function to find    // nth catalan number    static int catalan(int n)    {        int res = 0;          // Base case        if (n <= 1) {            return 1;        }        for (int i = 0; i < n; i++) {            res += catalan(i)                   * catalan(n - i - 1);        }        return res;    }      public static void Main()    {        for (int i = 0; i < 10; i++)            Console.Write(catalan(i)                          + " ");    }}  // This code is contributed by// nitin mittal.
Output:
1 1 2 5 14 42 132 429 1430 4862


Dynamic Programming Solution
We can observe that the above recursive implementation does a lot of repeated work (we can the same by drawing recursion tree). Since there are overlapping subproblems, we can use dynamic programming for this. Following is a Dynamic programming based implementation in C++.

Please refer complete article on Program for nth Catalan Number for more details!

My Personal Notes arrow_drop_up