1、原始解法 最原始的解法,是乘法的逐个位对应的相乘后相加,这里需要的时间复杂度是O(n2)。 2、尝试优化 用分治法的思想进行优化,即将一个大的数字拆成两半的长度(不是数值的1/2,是字面上的折成两半),再进行计算。例如: 假设两个n位的二进制数A和B相乘,可以先将A分解成A1*2n/2+A2(A1为前面一半的位,...
(这里在编程时需要用递归来实现) 上面讲的很清楚了,那么A和B的相乘就可以表示为: #include <stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>char*result ='\0';intpr =1;voidgetFill(char*a,char*b,intia,intja,intib,intjb,inttbool,intmove){intr,m,n,s,j,t;char*stack;/...