一,高精度乘法
for(int i=1;i<=lena;i++)
{
for(int j=1;j<=lenb;j++)
{
c[i+j-1]+=a[i]*b[j];//均为加
c[i+j]+=c[i+j-1]/10;
c[i+j-1]%=10;
}
}
①两套循环和之前的加减不是一样的
②必定是c[i+j-1]+=a[i]*b[j];而不是c[i+j-1]=a[i]*b[j];后者他会覆盖数据的。
③进位的操作必然是c[i+j]+=c[i+j-1]/10;由于是乘积,两个数均可能且极有可能需要进位
二,高精度减法
A①三个数组——str1,str2,str3;(str3用于交换)
②交换——strcpy;
③负号——flag;(比完cmp之后)
B①bool有时候大于和等于一起判断 直接return true;(等于)
C①进位加位的操作——a[i+1]--;这个操作尤为关键
三,高精度加法
①c[i]+=a[i]+b[i];
共性问题:
1.str1,str2在转字符的时候不去标记
2.转的时候为str1[i]-'0'