From e85127ed5b10e4524766827acbebb7b527a56cca Mon Sep 17 00:00:00 2001 From: Kush Sharma Date: Fri, 8 Oct 2021 21:35:43 +0530 Subject: [PATCH] Add generic root of a number [Hacktoberfest] #2533 (#2534) --- Maths/GenericRoot.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Maths/GenericRoot.java diff --git a/Maths/GenericRoot.java b/Maths/GenericRoot.java new file mode 100644 index 000000000..090922034 --- /dev/null +++ b/Maths/GenericRoot.java @@ -0,0 +1,26 @@ +/* + * Algorithm explanation: https://technotip.com/6774/c-program-to-find-generic-root-of-a-number/#:~:text=Generic%20Root%3A%20of%20a%20number,get%20a%20single%2Ddigit%20output.&text=For%20Example%3A%20If%20user%20input,%2B%204%20%2B%205%20%3D%2015. + */ +public class GenericRoot { + public static void main(String[] args) { + int number1 = 1234; + int number2 = 12345; + int result1 = genericRoot(number1); + int result2 = genericRoot(number2); + System.out.println("Generic root of " + number1 + " is: " + result1); + System.out.println("Generic root of " + number2 + " is: " + result2); + } + + private static int genericRoot(int n) { + int root = 0; + while (n > 0 || root > 9) { + if (n == 0) { + n = root; + root = 0; + } + root += n % 10; + n /= 10; + } + return root; + } +}