struct bigNum
{
int dau;
char *digit;
bigNum()
{
digit = new char[100000];
}
void operator = (const bigNum &x)
{
delete [] digit;
digit = new char[100000];
strcpy(digit,x.digit);
}
~bigNum()
{
delete[] digit;
}
};
hình như toán tử bằng có vấn đề anh ơi …em viết hàm để tính phép cộng là addBigNum
,em kiểm tra giá trị của biến trong hàm trước khi return
là chính xác nhưng không gán được cho biến .Bên dưới là hàm để tính phép cộng.
bigNum addBigNum(bigNum a,bigNum b)
{
int x,y;
long i;
int memory=0;
int sum;
char *tam = new char [100000];
bigNum c;
add0(&a,&b);
c.digit[strlen(a.digit)]=0;
for (i=strlen(a.digit)-1;i>=0;i--)
{
x=a.digit[i]-'0';
y=b.digit[i]-'0';
sum=memory+x+y;
memory=sum/10;
sum=sum%10;
c.digit[i]=sum+'0';
}
if (memory==1)
{
strcpy(tam,c.digit);
strcpy(c.digit+1,tam);
c.digit[0]='1';
}
delete [] tam;
return c;
}