C++中利用数组实现两个100位长的整数求和、差运算

来源:百度知道 编辑:UC知道 时间:2024/07/02 16:33:31

整数数组还是字符型数组?
道理类似,从低位到高位做个循环,加法注意是否越界,越界则向上进位;减法则注意减数与被减数关系,小于则借位。
一种实现,你可以参考一下。
void add(char a[],char b[],int x,int y,int f,int d)
{
char c[102];
int i;
int j;
int jin=0;
int s=0;
int m,ma;
int xx,yy;
if(d==0)
{
xx=0;yy=0;
}
if(d==1)
{
xx=1;yy=0;
}
if(d==2)
{
xx=0;yy=1;
}
if(d==3)
{
xx=1;yy=1;
}
x>y?m=x:m=y;
ma=m;
i=x-1;
j=y-1;
for(;m>0;i--,j--,m--)
{
if(j<yy && i>=xx)
s=int(a[i])-48+jin; //将字符转换成整型
else if(i<xx && j>=yy)
s=int(b[j])-48+jin;
else if(i>=xx && j>=yy)
s=(int(a[i])-48+int(b[j])-48+jin);
if(s>9)
{
jin=1;
c[m]=char(s+38);
}
else
{
jin=0;
c[m]=char(s+48);
}
}
if(jin==1)
c[0]='1';