代码改变世界

Little Boxes(高精度+高精度)

2019-10-14 13:15  木木王韦  阅读(196)  评论(0)    收藏  举报

Little Boxes

Little boxes on the hillside.
Little boxes made of ticky-tacky.
Little boxes.
Little boxes.
Little boxes all the same.
There are a green boxes, and b pink boxes.
And c blue boxes and d yellow boxes.
And they are all made out of ticky-tacky.
And they all look just the same.

Input

The input has several test cases. The first line contains the integer t (1 ≤ t ≤ 10) which is the total number of test cases.
For each test case, a line contains four non-negative integers a, b, c and d where a, b, c, d ≤ 2^62, indicating the numbers of green boxes, pink boxes, blue boxes and yellow boxes.

Output

For each test case, output a line with the total number of boxes.

Sample Input

4
1 2 3 4
0 0 0 0
1 0 0 0
111 222 333 404

Sample Output

10
0
1
1070

大数模板可真好用੧ᐛ੭

#include<iostream>

using namespace std;
const int L=110;
string add(string a,string b){
	string ans;
	int na[L]={0},nb[L]={0};
	int la=a.size(),lb=b.size();
	for(int i=0;i<la;i++){
		na[la-1-i]=a[i]-'0';
	}
	for(int i=0;i<lb;i++){
		nb[lb-1-i]=b[i]-'0';
	}
	int lmax=la>lb?la:lb;
	for(int i=0;i<lmax;i++) na[i]+=nb[i],na[i+1]+=na[i]/10,na[i]%=10;
	if(na[lmax]) lmax++;
	for(int i=lmax-1;i>=0;i--) ans+=na[i]+'0';
	return ans;
}
string a,b,c,d;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	int T;
	cin>>T;
	while(T--){
		cin>>a>>b>>c>>d;
		a=add(a,b);
		c=add(c,d);
		a=add(a,c);
		cout<<a<<endl;
	}
	return 0;
}