Skip to content

Commit 624fa6a

Browse files
author
Bhrigu Kansra
authored
Merge pull request #17 from joybanerjee08/master
Karatsuba in Java
2 parents 4ae8837 + fee244e commit 624fa6a

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

multiplication/karatsuba.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Main {
2+
public static void main(String[] args) {
3+
System.out.print(karatsuba (923,1723));
4+
}
5+
private static int karatsuba(int x, int y){
6+
if (String.valueOf(x).length()==1 || (String.valueOf(y).length()==1)){
7+
return x*y;
8+
}
9+
else{
10+
int n = Math.max(String.valueOf(x).length(),String.valueOf(y).length());
11+
int z = n / 2;
12+
int a = x /(int) Math.pow(10, z);
13+
int b = x %(int) Math.pow(10, z);
14+
int c = y /(int) Math.pow(10, z);
15+
int d = y %(int) Math.pow(10, z);
16+
int ac = karatsuba(a,c);
17+
int bd = karatsuba(b,d);
18+
int adbc = karatsuba(a+b,c+d) - ac - bd;
19+
return ac * (int)Math.pow(10, (2*z)) + (adbc * (int)Math.pow(10, z)) + bd;
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)