核心
- 数据的接收方法和存储方法
- 高精度位数的确定
- 进位错位处理
- 商和余数的求法
数据的接收方法和存储方法
void init(int a[])//传入一个数组{string s;cin>>s;//读取字符串len=s.length();//计算字符串的长度for(i=1;i<=len;i++)a[i]=s[len-i]-'0';//数串转换为数组并倒序存储}
高精度位数的确定
s.length()进位错位处理
加法进位:
减法借位:c[i]=a[i]+b[i];if(c[i]>=10){c[i]%=10++c[i+1]}
乘法进位if(a[i]<b[i]){--a[i+1];a[i]+=10;}c[i]=a[i]-b[i]
商和余数的求法:c[i+j-1]=a[i]*b[j]+x+[i+j-1];x=c[i+j-1]/10;c[i+j-1]%=10;
看被除数和除数的位数情况处理
