由来
由于工作中用到,自己在网上找了一些大数乘法源码,都没有符合我要求的。所以自己实现了一个。
分析过程
仿照我们小学学过的10进制乘法算式,来实现的大数乘法。
先举一个例子:234 * 567
这是我们最普通的乘法算式,对于程序实现起来还有点难,因此我们再继续计算分析:
(注:图中的小数字,不是次方,只是进位的数)
这个计算过程跟上图的区别就是加法跟乘法分开来计算,我在做乘法部分的时候,只是单纯的计算乘法,没有做加法,把进位的数标记出来,最后把在同一列的数字统统加起来,该进位的进位,最后起算出来结果。
写到这里大概就清晰了,我们先列个数组。
1 //用伪代码数组表示数:234,567
2 a[3] = {2, 3, 4}3 b[3] = {5, 6, 7}
下图为数组中表示形式