From 47d15534dbdf20ea3f5e51f6ee6018c75e7934db Mon Sep 17 00:00:00 2001 From: aarishahmad Date: Tue, 6 Jan 2026 19:26:58 +0530 Subject: [PATCH] Add Recursion Example of Greatest Common Divisor, Issue#64 --- Java/Recursion/GCD.class | Bin 0 -> 978 bytes Java/Recursion/GCD.java | 16 +++++++++++++ Java/Recursion/countAndSay.java | 41 ++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 Java/Recursion/GCD.class create mode 100644 Java/Recursion/GCD.java create mode 100644 Java/Recursion/countAndSay.java diff --git a/Java/Recursion/GCD.class b/Java/Recursion/GCD.class new file mode 100644 index 0000000000000000000000000000000000000000..87f4271f0751798bd7f74c951c94b0b192d31169 GIT binary patch literal 978 zcmaJ=+fEZv6kVs6nKBNvmOBNl3fiJl)CUs_K3H!}Kut>U!KXuegrU3q12&AYG~MI>=$nhU4NIT)N&gUQ+J2I|A8CvsrD9VFGy@1sB&*yu{Z! zj*RLNtp{YC-a5Dq_T3rx#|O7`kS7B%H!8Z!d3J=s+a9kiwS=$Qj*k&%Ikc*9K1 zYC>>UDx#nK{qPB97m!0bg0MKXc;)2zVak2Hro_1pBNa0kmgb0odTZv_u&In>s$ Ij>nk)2ggn1x&QzG literal 0 HcmV?d00001 diff --git a/Java/Recursion/GCD.java b/Java/Recursion/GCD.java new file mode 100644 index 0000000..697ddac --- /dev/null +++ b/Java/Recursion/GCD.java @@ -0,0 +1,16 @@ +public class GCD { + + // Recursive function to find GCD + static int gcd(int a, int b) { + if (b == 0) + return a; + return gcd(b, a % b); + } + + public static void main(String[] args) { + int num1 = 48; + int num2 = 18; + + System.out.println("GCD of " + num1 + " and " + num2 + " is: " + gcd(num1, num2)); + } +} diff --git a/Java/Recursion/countAndSay.java b/Java/Recursion/countAndSay.java new file mode 100644 index 0000000..131b0fa --- /dev/null +++ b/Java/Recursion/countAndSay.java @@ -0,0 +1,41 @@ +package Recusrion; + +public class countAndSay { + public String __countAndSay__(int n) { + return countAndMerge(n); + } + + private static String countAndMerge(int n) { + if (n == 1) + return "1"; + else if (n == 2) + return "11"; + else if (n == 3) + return "21"; + else if (n == 4) + return "1211"; + else { + StringBuilder answer = new StringBuilder(); + String xyz = (countAndMerge(n - 1)); + int[] helper = new int[10]; + int prev = xyz.charAt(0) - '0'; + for (int i = 0; i < xyz.length(); i++) { + int current = xyz.charAt(i) - '0'; + helper[xyz.charAt(i) - '0']++; + if (prev != current) { + answer.append(helper[prev]); + answer.append(prev); + helper[prev] = 0; + prev = current; + } + if (i == xyz.length() - 1) { + answer.append(helper[xyz.charAt(i) - '0']); + answer.append(xyz.charAt(i)); + } + } + + return answer.toString(); + + } + } +}