加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

【实战】C语言实现大数乘法

发布时间:2021-03-17 19:43:00 所属栏目:大数据 来源:网络整理
导读:我们回忆一下,在我们小时候刚接触多位数的乘法,我们的数学老师会教给我们一个方法,那就是“乘法的竖式计算”。在这里我们就采用该思想解决大数乘法的问题。 以下是我们经常进行乘法的竖式运算: 根据以上的竖式运算,我们实现过程总结如下: 先使用两个字
副标题[/!--empirenews.page--]

【实战】C语言实现大数乘法

我们回忆一下,在我们小时候刚接触多位数的乘法,我们的数学老师会教给我们一个方法,那就是“乘法的竖式计算”。在这里我们就采用该思想解决大数乘法的问题。

以下是我们经常进行乘法的竖式运算:

【实战】C语言实现大数乘法

根据以上的竖式运算,我们实现过程总结如下:

  • 先使用两个字符数组保存两个大数据;

  • 用第一个数据的个位与第二个数据的所有位相乘,并将每一位的运算结果保存在暂存字符数组temp中,并进行进位调整,即如果该位的数值大于9,就将该数值的十位加到前一位,并将该位的个位保存在原位。

  • 将temp与结果数组rst中的数值逆序相加,也就是从两个数组的倒数第一位开始相加。

  • 以相同的方法,计算出第一个数据的十位与第二个数据相乘的结果,并保存至temp中。

  • 将temp与rst倒数第二位的结果开始逆序相加。

  • 第一个数据有几位就将以上过程进行几次。

【注】:对于确定每次与rst的倒数第几位相加时,可以采用一个bit变量存下正在进行第一个数据的第几位数据的运算,在最终相加时,在rst数组的末尾减去bit就是,应该与temp最后一位相加的位数。

1
C语言实现过程:

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读