大数加法
发布时间: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"); } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |