> 欢迎来到高精度算法的第二站:高精度乘法,详情见目录:传送门
高精度乘法原理:
欢迎来到高精度算法的第二站:高精度乘法
在这之前,我们先要认识高精度乘法,高精度乘法归根结底还是要用到数学乘法的基本原理,先把一个大整数分拆成各个数位,过程:
1. 将两个大整数相乘,从低位开始逐位相乘,得到部分乘积;
2. 将每一位的部分乘积相加,考虑进位;
3. 最终得到的结果就是两个大整数的乘积。
举例说明:
假设要计算 12345 * 6789。
首先,逐位相乘得到部分乘积:59=45、49=36、39=27、29=18、1*9=9。
然后,将这些部分乘积相加考虑进位:5 + 3(进位)= 8、6 + 4 + 2(进位) = 12、2 + 7 + 1(进位) = 10、1 + 8 = 9、0(进位)= 0。
最终结果为:83965705。
通过这种方法,可以实现大整数的高精度乘法运算。
那么接下来就请看代码详解:
代码详解:
这次咱们调换一下顺序,先亮出例题和代码,接着再来讲解:
例题:A*Bproblem-洛谷
当然,这只是个母题,我们默认定义的vector数组是int类型的,所以在这里并没有处理负数的情况,如果需要支持负数的话,还需另外进行操作.
那么今天我们就讲到这儿了,离别是为了更好的相聚,希望下次的高精度除法能够再次与你同行
-Ysjt | 深
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关参考/引用:
C++实现高精度乘法
c高精度乘法的原理及c代码讲解
感谢:
洛谷刷题平台
ACGO平台
提供例题
本文同步发布:
新浪微博
CSDN平台