首先,我们来看下任意两个两位数相乘
图1
图2
由图1可以看到
个位为乘数1的个位乘以乘数2的个位所得到的个位,即7x8 = 56,取个位为6,向十位进5
十位为乘数1的十位乘以乘数2的个位加乘数2的十位乘以乘数1的个位,即1x8 + 2x7 = 22,取2向百位进2
百位为乘数1的十位乘以乘数2的十位,即 1x2 = 2
最终个位、十位、百位为当前值加上对应的进位,所以个位为6,十位为2+5= 7,百位为2+2 = 4
图2同样也是,由于十位为1,简化了很多。
任意两位数我们其实可以用表达式
图3
百位为:
图4
(a1b2+a2b1)/10,表示乘数1与乘数2十位系数与个位交替乘积之和除以10得出的倍数,a1b2对应图1中的8,a2b1对应图1中的14,(a1b2+a2b1)/10 对应(8+14)/10 = 2,也就是图示中的十位对百位的进位2
十位为:
图5
(a1b2+a2b1)%10表示乘数1与乘数2十位系数与个位交替乘积之和对10求余数,也就是写在十位的数,对应图1中的十位2,b1b2/10是个位的进位,对应图1中的进位5
个位为:
图6
b1b2%10,对10求余数,对应图1中的6,也就是个位上的数
所以任意两个两位数相乘,只需要把对应的参数代入公式就可以快速的计算出结果