加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数加法

发布时间:2020-12-14 01:32:42 所属栏目:大数据 来源:网络整理
导读:#define MAXN 1000000000class BigNum { unsigned a[10]; int len; void _add(int i,unsigned d) { while(len = i) a[len++] = 0; a[i] += d; } void add(int i,unsigned d) { _add(i,d); while(a[i] = MAXN) { a[i++] -= MAXN; _add(i,1); } }public: BigNu
#define MAXN 1000000000

class BigNum {
    unsigned a[10];
    int len;
    void _add(int i,unsigned d) {
        while(len <= i) a[len++] = 0;
        a[i] += d;
    }
    void add(int i,unsigned d) {
        _add(i,d);
        while(a[i] >= MAXN) {
            a[i++] -= MAXN;
            _add(i,1);
        }
    }
public:
    BigNum(unsigned d = 0) {
        len = 0;
        while(d >= MAXN) {
            a[len++] = d % MAXN;
            d /= MAXN;
        }
        a[len++] = d;
    }
    void operator += (BigNum &n) {
        for(int i=0; i<n.len; i++) add(i,n.a[i]);
    }
    void print() {
        printf("%u",a[len-1]);
        for(int i=len-2; i>=0; i--) printf("%09u",a[i]);
        printf("n");
    }
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读