CE 求调
  • 板块学术版
  • 楼主Hanrui1206
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/7 14:01
  • 上次更新2024/8/7 14:59:55
查看原帖
CE 求调
1283944
Hanrui1206楼主2024/8/7 14:01
#ifndef BIGINT_H
#define BIGINT_H

#include <bits/stdc++.h>
using namespace std;

class Bigint {
private:
	int a[10000];
public:
	Bigint() {
		memset(a, 0, sizeof a);
		a[0] = 1;
	}
	friend ostream & operator << (ostream &out, const Bigint & b);
	friend istream & operator >> (istream &in, const Bigint & b);
	Bigint operator + (Bigint r) {
		Bigint c;
		c.a[0] = max(a[0], r.a[0]);
		int g = 0;
		for (int i = 1; i <= c.a[0]; i ++) {
			c.a[i] = a[i] + r.a[i] + g;
			if (c.a[i] > 9) {
				g = 1;
				c.a[i] -= 10;
			} 
			else 
				g = 0;
		}
		if (g == 1) {
			c.a[0] ++;
			c.a[c.a[0]] = 1;
		}
		return c;
	}
};

istream & operator >> (istream &in, const Bigint & b) {
	string s;
	in >> s;
	memset(b.a, 0, sizeof b.a);
	b.a[0] = s.size();
	for (int i = 0, j = b.a[0]; i < b.a[0]; i ++, j --)
		b.a[j] = s[i] -  '0';
	for (int len = b.a[0], i = len; i > 1; i --) {	
		if (b.a[i] == 0)
			b.a[i] --;
		else
			break;
	}
	return in;
}

ostream & operator << (ostream &out, const Bigint & b) {
	for (int i = b.a[i]; i > 0; i --) 
		out << b.a[i];
	return out;
}

#endif 

该代码为何 CE。

2024/8/7 14:01
加载中...