[算法设计]分治思想实例——大整数乘法(Java实现)
//Java代码实现
public static long multip(long x,long y,int n) { if(1 == n) { return x*y; } else { long nx1 = (long) (x/Math.pow(10,n/2)); long nx2 = x - nx1 * (long) (Math.pow(10,n/2)); long ny1 = (long) (y/Math.pow(10,n/2)); long ny2 = y - ny1 * (long) (Math.pow(10,n/2)); long nx1y1 = multip(nx1,ny1,n/2); long nx2y2 = multip(nx2,ny2,n/2); long nx1y2x2y1 = multip(nx1 - nx2,ny2 - ny1,n/2) + nx1y1 + nx2y2; return nx1y1 * (long)Math.pow(10, n) + nx1y2x2y1 * (long)Math.pow(10,n/2) + nx2y2; } }
(总结自网易云课堂《算法设计与分析之入门篇》)