大数计算
核心代码:
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
const int MAXN = 10000;
struct BigInteger
{
int digit[MAXN];
int length;
BigInteger();
BigInteger(int x);
BigInteger(string s);
BigInteger operator= (const BigInteger& b);
bool operator<= (const BigInteger& b);
bool operator== (const BigInteger& b);
BigInteger operator+ (const BigInteger& b);
BigInteger operator- (const BigInteger& b);
BigInteger operator* (const BigInteger& b);
BigInteger operator/ (const BigInteger& b);
BigInteger operator% (const BigInteger& b);
};
BigInteger :: BigInteger()
{
memset(digit,0,sizeof(digit));
length = 0;
}
BigInteger :: BigInteger(int x)
{
memset(digit,0,sizeof(digit));
length = 0;
if(x == 0)
{
digit[length ++] = x;
}
while(x != 0)
{
digit[length ++] = x%10;
x /= 10;
}
}
BigInteger :: BigInteger(string s)
{
memset(digit,0,sizeof(digit));
length = s.size();
for(int i=0; i<length; i