首页 > 其他 > 详细

重载高精度运算符

时间:2017-01-25 16:21:28      阅读:335      评论:0      收藏:0      [点我收藏+]
{
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;
}
}

 

重载高精度运算符

原文:http://www.cnblogs.com/9pounds15pence/p/6349581.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!