现给出两个非负整数A和B,求A+B
Input
第一行给出一个数字T (1<=T<=20),代表接下来有T组测试样例
接下来每一组测试样例由一行组成,一行内将给出两个整数A和B。
A和B的长度小于等于1000
Output
对于每一组测试样例,你应该输出两行。
第一行输出"Case #:"。#的意思是当前是第几个测试样例的数字。
第二行输出"A + B = SUM",A、B是原输入当中的数据,SUM是A+B运算结果,但是存在前导零的输出结果将不被认可
每两组测试样例之间留一个空行。
Sample Input
2
1 2
112233445566778899 998877665544332211
Sample Output
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define ll long long
#define mes(x,y) memset(x,y,sizeof(x))
using namespace std;
int main(){
int n;string x,y;vector<long>a,b,c;
while(cin>>n){
int k=1;
while(n--){
a.clear();b.clear();c.clear();x.clear();y.clear();
cin>>x>>y;
long len=max(x.length(),y.length()),v=0,i=0,j;
for(i=x.size()-1;i>=0;i--)a.push_back((long)(x[i]-'0'));
for(i=y.size()-1;i>=0;i--)b.push_back((long)(y[i]-'0'));
for(i=0;i<len;i++){
long tx=a[i],ty=b[i];
if(i>=x.length()){
tx=0;}
if(i>=y.length()){
ty=0;}
v=tx+ty+v;
c.push_back(v%10);
v=v/10;}
while(v!=0){
c.push_back(v%10);
len++;
v/=10;}
cout<<"Case "<<k++<<":"<<endl<<x<<" + "<<y<<" = ";
for(j=len-1;j>=0;j--){
cout<<c[j];
}cout<<endl;
if(n!=0)cout<<endl;
}
}
return 0;
}