核心
- 数据的接收方法和存储方法
- 高精度位数的确定
- 进位错位处理
- 商和余数的求法
数据的接收方法和存储方法
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;
看被除数和除数的位数情况处理