#include<bits/stdc++.h>
#define Max 10010
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
string a,b;
cin>>a>>b;
vector<int>x;
x.clear();
vector<int>y;
y.clear();
vector<int>z(Max+10,0);
z.clear();
for(int i=a.size()-1;i>=0;i--)
x.push_back(a[i]-'0');
for(int i=b.size()-1;i>=0;i--)
y.push_back(b[i]-'0');
int len;
if(x.size()>y.size())
{
len=y.size();
}
else if(y.size()>x.size())
len=x.size();
else
len=x.size();
for(int i=0;i<len;i++)
z[i]=x[i]+y[i];
if(x.size()>y.size())
{
for(int i=len;i<x.size();i++)
z[i]=x[i];
}
else if(x.size()<y.size())
for(int i=len;i<y.size();i++)
z[i]=y[i];
for(int i=0;i<Max;i++)
{
if(z[i]>=10)
{
z[i+1]=z[i+1]+z[i]/10;
z[i]=z[i]%10;
}
}
int flag;
for(int i=Max;i>=0;i--)
{
if(z[i]==0)
continue;
else
{
flag=i;
break;
}
}
for(int i=flag;i>=0;i--)
cout<<z[i];
cout<<endl;
}
return 0;
}
自己运行是对的,但是在oj上是Segmentation fault:段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域
这个加法的大整数运算 我是根据乘法写出来的