不正宗题解
2023-08-05 18:48:38
发布于:浙江
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std; //template operator
class lll{
	public:
	int a[10000];
	int len;
	bool f=0;
	friend istream& operator >>(istream &input,lll &a){
		string arr;
		input >> arr;
		int len = arr.length() - 1;
		if(arr[0] == '-'){
			len--;
			a.f = true;
		}
		a.len = len;
		for(int i = 0;i <= len;i++){
			a.a[len - i] = arr[i] - '0';
		}
		return input;
	} 
	friend lll operator +(const lll a,const lll b){
		lll c;
		int len = max(a.len,b.len);
		c.a[0] = 0;
		for(int i = 0;i <= len;i++){
			c.a[i] = a.a[i] + b.a[i] + c.a[i];
			c.a[i+1] += c.a[i] / 10;
			c.a[i] %= 10;
		}
		if(c.a[len+1])len++;
		c.len = len;
		return c;
	}
	friend bool operator >(const lll a,const lll b){
		if(a.len > b.len)return true;
		if(b.len > a.len)return false;
		if(a.f == 0&&b.f == 1){
			return true;
		}else{
			return false;
		}
		for(int i = a.len;i>=0;i--) {
			if(a.a[i] < b.a[i])return false;
		}
		return true;
	}
	//friend lll operator -(const lll a,const lll b){
	//	lll c;
	//	if(a.f == 1||b.f == 1)return c;
	//	
	//}
	friend ostream& operator <<(ostream &output,const lll a){
		if(a.f)output << '-';
		for(int i = a.len;i >= 0;i--){
			output << a.a[i];
		}
		return output;
	}
};
lll a,b;
int main(){
	cin >> a >> b;
	cout << a + b;
	return 0;
}
这里空空如也

有帮助,赞一个