From 06d7e0636b0e5985b2c0d0f5ee1417806d4630e8 Mon Sep 17 00:00:00 2001 From: dayagct <91879871+dayagct@users.noreply.github.com> Date: Thu, 28 Oct 2021 09:19:09 +0530 Subject: [PATCH] Add files via upload Added Java program for Catalan numbers --- Catalan.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Catalan.java diff --git a/Catalan.java b/Catalan.java new file mode 100644 index 0000000..dd04ce6 --- /dev/null +++ b/Catalan.java @@ -0,0 +1,45 @@ +import java.util.Scanner; + +class Catalan { + + // find nth Catalan number + public static int catalanDP(int n) + { + + int cat[] = new int[n + 2]; + + // Initialize first two values in table + cat[0] = 1; + cat[1] = 1; + + for (int i = 2; i <= n; i++) { + cat[i] = 0; + for (int j = 0; j < i; j++) { + cat[i] += cat[j] * cat[i - j - 1]; + } + } + + // Return last entry + return cat[n]; + } + + // Driver code + public static void main(String[] args) + { + + // Catalan numbers are a sequence of positive integers, where the nth term in the sequence, denoted Cn, + // is found in the following formula: (2n)! / ((n + 1)!n!) + + Scanner in = new Scanner(System.in); + System.out.println("Enter n (upto 20th catalan numbers will be printed): "); + int n = in.nextInt(); + while(n>=20 || n<=0){ + System.out.print("Enter n < 20: "); + n = in.nextInt(); + } + in.close(); + for (int i = 0; i < n; i++) { + System.out.print(catalanDP(i) + " "); + } + } +}