Find Nth Catalan Number

C 0 = C 1 = 1 and C n = (2n)! ((n+1)!n!) = i=0 n-1 C i C n-1-i = 2(2n-1) n+1 C n-1 for n > 2

Hint

Observe recursive relationship from definition, C(n) is sum of C(i) times C(n - 1 - i) from i = 0 to i < n, create recurisive function calls. The second form of recursive relationship is drived by C(n) / C(n - 1), simplify its equation, then move C(n - 1) to the right.

# Python implementation
def C(n):
  if (n <= 1):
    return 1

  result = 0

  for i in range(n):
    result += C(i) * C(n - 1 - i)

  return result

n = 5

print(C(n))
// Javascript implementation
function C(n) {
  if (n <= 1) {
    return 1;
  }

  let result = 0;

  for (let i = 0; i < n; i++) {
    result += C(i) * C(n - 1 - i);
  }

  return result;
}

const n = 5;

console.log(C(n));