该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//数组倒置函数
void Big_int::reversal()
{
int i,temp;
for(i=0;i
{
temp=addend[i];
addend[i]=addend[bits-1-i];
addend[bits-1-i]=temp;
}
}
//加法器函数
Big_int *adder(Big_int *p,Big_int *q)
{
int i,x,y,Bits,carry=0;
Big_int *result;
result=new Big_int;
result->bits=0;
p->reversal();
q->reversal(); //加数数组倒置,方便计算
cout<addend<
cout<addend<
Bits=p->bits>q->bits?p->bits:q->bits;
cout<
for(i=0;i
{
if(i>=p->bits)
p->addend[i]='0';
if(i>=q->bits)
q->addend[i]='0';
x=p->addend[i]-'0';
y=q->addend[i]-'0';
result->addend[i]=(x+y+carry)%10+'0';
result->bits++;
if(x+y+carry>9)
carry=1;
else
carry=0;
}
if(carry==1)
{
result->addend[result->bits]='1';
result->bits++;
}
else
result->addend[result->bits]='\0';
result->reversal();
return result;
}