持续更新—
目前支持两个类相加相乘,类加乘整数,++x以及x++,赋值。

struct BigInter {
private:
    int num[50], len;
    int base;
public:     
    BigInter() {
        memset(num,0,sizeof(num));
        len = 1;
        base = 10000;
     }
    BigInter(int v) {
        memset(num,0,sizeof(num));
        base = 10000;
        len = 0;
        do {
        	num[++len] = v%base;
        	v /= base;
        }while(v);
    }
    BigInter operator=(int x) {
         return *this = BigInter(x);
    }
    BigInter operator=(long long x) {
         return *this = BigInter(x);
    }
    BigInter operator+(BigInter &b) {
         BigInter res;
         res.len = max(this->len, b.len);
         for(int i = 1; i <= res.len; i++) {
             res.num[i] += this->num[i] + b.num[i];
             res.num[i+1] += res.num[i]/base;
             res.num[i] = res.num[i]%base;
         }
         if(res.num[res.len+1]) res.len++;
         return res;
    }
     BigInter operator+(long long x) {
	     BigInter res;
	     BigInter b = BigInter(x);
	     res.len = max(this->len, b.len);
	     for(int i = 1; i <= res.len; i++) {
	         res.num[i] += this->num[i] + b.num[i];
	         res.num[i+1] += res.num[i]/base;
	         res.num[i] = res.num[i]%base;
	     }
	     if(res.num[res.len+1]) res.len++;
	     return res;
     }
     BigInter operator*(BigInter &b) {
        BigInter res;
        res.len = this->len+b.len;
        for(int i = 1; i <= this->len; i++) {
            for(int j = 1; j <= b.len; j++) {
            	res.num[j+i-1] += this->num[i] * b.num[j];
            	res.num[j+i] += res.num[j+i-1]/base;
            	res.num[j+i-1] %= base;
            }
        }
        while(!res.num[res.len]) res.len--;
        return res;
     }
     BigInter operator*(long long x) {
        BigInter res;
        BigInter b(x);
        res.len = this->len+b.len;
        for(int i = 1; i <= this->len; i++) {
            for(int j = 1; j <= b.len; j++) {
            	res.num[j+i-1] += this->num[i] * b.num[j];
            	res.num[j+i] += res.num[j+i-1]/base;
            	res.num[j+i-1] %= base;
            }
        }
        while(!res.num[res.len]) res.len--;
        return res;
     }
     void operator +=(BigInter &b) {
         *this = *this + b;
     }
     void operator *=(BigInter &b) {
         *this = *this * b;
     }
     void operator +=(long long x) {
         BigInter b = BigInter(x);
         *this = *this + b;
     }
     void operator *=(long long x) {
     	BigInter b = BigInter(x);
         *this = *this * b;
     }
     BigInter operator++() {
     	*this = *this+1;
     	return *this;
     }
     BigInter operator ++(int) {
     	BigInter old = *this;
     	++(*this);
     	return old;
     }
     void print() {
         printf("%d", num[len]);
         for(int i = len-1; i >= 1; i--) {
         	printf("%04d", this->num[i]);
         }
         puts("");
     }
};