class BigNum
{
public:
int a[SIZE];
BigNum()
{
for(int i=0;i<SIZE;i++)
a[i]=0;
}
BigNum operator+(const BigNum & b);
void operator=(const BigNum & b);
void display();
private:
void f();
};
BigNum BigNum::operator+(const BigNum & b)
{
BigNum p;
for(int i=0;i<SIZE;i++)
{
p.a[i]=a[i]+b.a[i];
}
p.f();
return p;
}
void BigNum::operator=(const BigNum & b)
{
for(int i=0;i<SIZE;i++)
{
a[i]=b.a[i];
}
}
void BigNum::f()
{
for(int i=0;i<SIZE;i++)
{
if(a[i]>MAX)
{
a[i+1]+=a[i]/MAX;
a[i]%=MAX;
}
}
}
void BigNum::display()
{
for(int i=SIZE-1;i>=0;i--)
{
if(a[i]!=0)
{
cout<<a[i];
while(i--)
{
cout<<setw(7)<<setfill('0')<<a[i];
}
break;
}
}
cout<<endl;
{
public:
int a[SIZE];
BigNum()
{
for(int i=0;i<SIZE;i++)
a[i]=0;
}
BigNum operator+(const BigNum & b);
void operator=(const BigNum & b);
void display();
private:
void f();
};
BigNum BigNum::operator+(const BigNum & b)
{
BigNum p;
for(int i=0;i<SIZE;i++)
{
p.a[i]=a[i]+b.a[i];
}
p.f();
return p;
}
void BigNum::operator=(const BigNum & b)
{
for(int i=0;i<SIZE;i++)
{
a[i]=b.a[i];
}
}
void BigNum::f()
{
for(int i=0;i<SIZE;i++)
{
if(a[i]>MAX)
{
a[i+1]+=a[i]/MAX;
a[i]%=MAX;
}
}
}
void BigNum::display()
{
for(int i=SIZE-1;i>=0;i--)
{
if(a[i]!=0)
{
cout<<a[i];
while(i--)
{
cout<<setw(7)<<setfill('0')<<a[i];
}
break;
}
}
cout<<endl;
}
这是在别人的一个代码中截下来的一个大数加法类,感觉写得不错,特此收藏。