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

乘法运算对于我们来说,它并不陌生,我相信许多的人在平时的生活中都常常用到它。在小学的学习中,我们对于乘法的计算,常常使用竖式计算的方法去计算乘法。例如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语言算法——超大正整数乘法计算)。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注