学完了加减,我们一起来看乘法:
我们来模拟一下43×21
4 3
× 2 1
4 3
+ 8 ₁6
9 0 3
每一次乘法,主要没问题,只不过要考虑一下位置,因为十位上一个乘出来的数需要在基础上×10,以此类推。
所以乘法最核心的部分就放在这里了:
for(int i=0;i<la;i++)
for(int j=0;j<lb;j++)
s[i+j]+=(a[la-i-1]-'0')*(b[lb-j-1]-'0');
相信大家的智商这段代码肯定可以理解的~
进位:
for(int i=0;i<la+lb;i++){
s[i+1]+=s[i]/10;
s[i]%=10;
}
让后倒叙存储+去0+倒着输出就可以了。
好了,这期博客就到这里了,我们下期再见。