From f33402c9167f4ed3807f0c9d2491b5285cd42e15 Mon Sep 17 00:00:00 2001 From: Reborn Date: Tue, 11 Mar 2025 15:23:16 +0000 Subject: [PATCH] added --- .../src/main/java/karatsuba/Karatsuba.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Course Activities/02 - Core CS/05 - Core theory/01 - Divide and Conquer, Sorting and Searching, and Randomized Algorithm/Karatsuba/KaratsubaImplementation/src/main/java/karatsuba/Karatsuba.java b/Course Activities/02 - Core CS/05 - Core theory/01 - Divide and Conquer, Sorting and Searching, and Randomized Algorithm/Karatsuba/KaratsubaImplementation/src/main/java/karatsuba/Karatsuba.java index 1e2eaa7..024ee9a 100644 --- a/Course Activities/02 - Core CS/05 - Core theory/01 - Divide and Conquer, Sorting and Searching, and Randomized Algorithm/Karatsuba/KaratsubaImplementation/src/main/java/karatsuba/Karatsuba.java +++ b/Course Activities/02 - Core CS/05 - Core theory/01 - Divide and Conquer, Sorting and Searching, and Randomized Algorithm/Karatsuba/KaratsubaImplementation/src/main/java/karatsuba/Karatsuba.java @@ -3,8 +3,10 @@ package karatsuba; public class Karatsuba { public int multiply(int x, int y) { + int result; if (x < 10 && y < 10) { - return x*y; + result = x*y; + return result; } String[] xyStr = intNormalizer(x, y); int n = xyStr[0].length(); @@ -22,9 +24,11 @@ public class Karatsuba { int firstFactor = tenFactorOne*ac; int secondFactor = tenFactorTwo*ADPlusBC; // 10^nAC + 10^(n/2)(AD + BC) + BD - return firstFactor + secondFactor + bd; + result = firstFactor + secondFactor + bd; + return result; } + // this method returns an array that contains abcd for the karatsuba formula public int[] intFragmenter(String[] xyStr, int n) { int strHalfPoint = n/2; if (strHalfPoint == 1) { @@ -34,9 +38,9 @@ public class Karatsuba { int d = Integer.parseInt(String.valueOf(xyStr[1].charAt(1))); return new int[] {a, b, c, d}; } - int a = Integer.parseInt(xyStr[0].substring(0, strHalfPoint-1)); + int a = Integer.parseInt(xyStr[0].substring(0, strHalfPoint)); int b = Integer.parseInt(xyStr[0].substring(strHalfPoint)); - int c = Integer.parseInt(xyStr[1].substring(0, strHalfPoint-1)); + int c = Integer.parseInt(xyStr[1].substring(0, strHalfPoint)); int d = Integer.parseInt(xyStr[1].substring(strHalfPoint)); return new int[] {a, b, c, d}; }