一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

小编:小蝶 更新时间:2022-08-25

乘法运算对于我们来说,它并不陌生,我相信许多的人在平时的生活中都常常用到它。在小学的学习中,我们对于乘法的计算,常常使用竖式计算的方法去计算乘法。例如326×36采用竖式计算方法,计算形式如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

上述的计算方法,是我们小学教育中所学习掌握的知识,我相信大家都它非常熟悉。我将为大家展示一种你们可能从未接触过的计算方法。

以326×36为例,首先需要将要乘的数做一个“翻转”,即把326变成623,36变成63;然后我们对位数比较少的数进行补0处理,即63变成630;最后通过以下的步骤进行计算,得到326×36结果的个位、十位百位等等。

第一步,计算326X36结果的个位,方法如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

6X6=36,用36除以10得到整数部分为3,余数部分为6,这时候余数6就是326X36结果的个位,而整数部分3就是向十位的进位,即进位数C=3。

第二步,计算326X36结果的十位,方法如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

6X3+2X3+C=33(注:C是上一步的进位值),用33除以10得到整数部分为3,余数部分为3,这时候余数3就是326X36结果的十位,而整数部分3就是向百位的进位,即进位数C=3。

第三步,计算326X36结果的百位,方法如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

6X0+2X3+3X6+C=24+3=27,用27除以10得到整数部分为2,余数部分为7,这时余数7就是326X36结果的百位,而整数部分2就是向千位的进位,即进位数C=2。

第四步,计算326X36结果的千位,方法如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

2X0+3X3+C=9+2=11,用11除以10得到整数部分为1,余数部分为1,这时余数1就是326X36结果的千位,而整数部分1就是向万位的进位,即进位数C=1。

第五步,计算326X36结果的万位,方法如下:

一种与传统不一样的乘法运算算法(一种与传统不一样的乘法运算算法叫做)

3X0+C=0+1=1,用1除以10得到整数部分为0,余数部分为1,这时余数1就是326X36结果的万位,进位C=0。

计算到这里,我们就可以得到326X36的结果为11736。显然这个结果是正确的。

现在可能大家会有一个疑问。为什么要计算5步就可以得到326X36的结果?这是因为3位数与2位数的乘积得到的结果是4位数或者是5位数,所以计算5步就可以把它的结果的每一位数计算出来。注:最小的3位数是100,最小的2位数是10,则任意3位数与2位数的乘积都大于等于100X10=1000(1000是最小的4位数);最大的3位数是999,最大的2位数是99,则任意3位数与2位数的乘积都小于1000X100=100000(这是一个最小的7位数)。所以任意的3位数与2位数相乘结果只能是4位数或5位数。总结,任意的n位正整数与m位正整数相乘,它的最终结果只能是n+m位(或n+m-1位)的正整数。所以n位的正整数与m位的正整数相乘,我们进行n+m步计算就可以得到它的结果。

对于含小数点的数字,我们可以这样计算。例如,123.45X45.7,把123.45变成12345/100,45.7变成457/10,所以123.45X45.7=(12345X457)/1000,这时括号里的12345X457就可以采用上述的方法计算了。

总结,这种计算乘法的方法,对于人工的手动计算来说,是比较麻烦的,但是我们通过利用计算机编程的方法,可以比较轻易的实现超大数字的乘法计算,例如几十位或上百位的数的乘法运算。如果你对这程序算法感兴趣,可以观看我的另一篇文章(C语言算法——超大正整数乘法计算)。