From fee244e6d3e1118d809a2245129698f04e53c788 Mon Sep 17 00:00:00 2001 From: Joy Banerjee <32819925+joybanerjee08@users.noreply.github.com> Date: Mon, 1 Oct 2018 23:15:56 +0530 Subject: [PATCH] Add files via upload --- multiplication/karatsuba.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 multiplication/karatsuba.java diff --git a/multiplication/karatsuba.java b/multiplication/karatsuba.java new file mode 100644 index 0000000..1981213 --- /dev/null +++ b/multiplication/karatsuba.java @@ -0,0 +1,22 @@ +class Main { + public static void main(String[] args) { + System.out.print(karatsuba (923,1723)); + } + private static int karatsuba(int x, int y){ + if (String.valueOf(x).length()==1 || (String.valueOf(y).length()==1)){ + return x*y; + } + else{ + int n = Math.max(String.valueOf(x).length(),String.valueOf(y).length()); + int z = n / 2; + int a = x /(int) Math.pow(10, z); + int b = x %(int) Math.pow(10, z); + int c = y /(int) Math.pow(10, z); + int d = y %(int) Math.pow(10, z); + int ac = karatsuba(a,c); + int bd = karatsuba(b,d); + int adbc = karatsuba(a+b,c+d) - ac - bd; + return ac * (int)Math.pow(10, (2*z)) + (adbc * (int)Math.pow(10, z)) + bd; + } + } +} \ No newline at end of file