高精度算法II(乘法)

高精度乘法原理:

欢迎来到高精度算法的第二站:高精度乘法

在这之前,我们先要认识高精度乘法,高精度乘法归根结底还是要用到数学乘法的基本原理,先把一个大整数分拆成各个数位,过程:

  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。

通过这种方法,可以实现大整数的高精度乘法运算。

那么接下来就请看代码详解:

代码详解:

这次咱们调换一下顺序,先亮出例题和代码,接着再来讲解:

例题:P1303 A*B Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

当然,这只是个母题,我们默认定义的vector数组是int类型的,所以在这里并没有处理负数的情况,如果需要支持负数的话,还需另外进行操作.

那么今天我们就讲到这儿了,离别是为了更好的相聚,希望下次的高精度除法能够再次与你同行

-Ysjt | 深

---------------------------------------------------------------------------------------------------------------------------------

相关参考/引用:

C++实现高精度乘法_c++高精度乘法-优快云博客

高精度乘法c++- 优快云搜索

c++高精度乘法的原理及c++代码讲解_高精度乘法c++-优快云博客

感谢: 首页 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

ACGO题库-编程算法训练_信息学竞赛OJ刷题平台

平台提供例题

本文同步发布:

ACGO题库-编程算法训练_信息学竞赛OJ刷题平台

优快云博客-专业IT技术发表平台

微博 – 随时随地发现新鲜事 (weibo.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ysjt | 深

谢谢你!你的支持是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值