重载高精度运算符

{
struct BigInt {
    int n, a[1003];
};
BigInt operator +(const BigInt& a, const BigInt& b) {
    BigInt c;
    static int s[1003];
    memset(s, 0, sizeof(s));
    for (int i = 0; i < a.n; ++ i) {
        s[i] = a.a[i];
    }
    for (int i = 0; i < b.n; ++ i) {
        s[i] += b.a[i];
    }
    c.n = max(a.n, b.n);
    for (int i = 0; i < c.n; ++ i) {
        s[i + 1] += s[i] / 10;
        s[i] %= 10;
    }
    for (; s[c.n]; ++ c.n) {
        s[c.n + 1] = s[c.n] / 10;
        s[c.n] %= 10;
    }
    memcpy(c.a, s, sizeof(s));
    return c;
}
int main() 
{
    BigInt a, b;
    a + b;
}
}

 

posted @ 2017-01-25 15:49  Mr.9Pounds15Pence  阅读(483)  评论(0)    收藏  举报