Catalan Numbers

Generate first n Catalan numbers.

AdvancedPhase 6 - Category 4: Mathematical CombinationsExample 7 of 10
catalan-numbers.py
1# Helper function
2def catalan(n):
3 if n == 0:
4 return 1
5 result = 0
6 for i in range(n):
7 result += catalan(i) * catalan(n - 1 - i)
8 return result
9
10# Take n
11n = int(input("Enter n: "))
12
13# Print Catalan numbers
14print(f"First {n} Catalan numbers:")
15for i in range(n):
16 print(catalan(i), end=" ")
17print()

Output

Enter n: 10
First 10 Catalan numbers:
1 1 2 5 14 42 132 429 1430 4862

What's going on

Catalan numbers using recursive formula.

Key Concepts:

C(0) = 1
C(n) = sum of C(i) * C(n-1-i)
Recursive calculation