Viksy

CatalanNumbers

Jan 14th, 2023
672
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.02 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4.  
  5. public class CatalanNumbers {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int n = Integer.parseInt(scanner.nextLine());
  10.  
  11.         List<Long> catalanNumbers = getCatalanNumbers(new ArrayList<>({1}), n);
  12.  
  13.         System.out.println(catalanNumbers);
  14.     }
  15.  
  16.     public static List<Long> getCatalanNumbers(List<Long> catalanNumbers, int n) {
  17.         if(catalanNumbers.size() == (n + 1)) {
  18.             return catalanNumbers;
  19.         }
  20.  
  21.         long currentCatalanNumber = factorial(2 * catalanNumbers.size()) /
  22.                 (factorial(catalanNumbers.size() + 1) * factorial(catalanNumbers.size()));
  23.  
  24.         catalanNumbers.add(currentCatalanNumber);
  25.  
  26.         return getCatalanNumbers(catalanNumbers, n);
  27.     }
  28.  
  29.     public static long factorial(int num) {
  30.         if(num == 0) {
  31.             return 1;
  32.         } else {
  33.             return num * factorial(num - 1);
  34.         }
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment