
class Solution {
public:
int getSum(int a, int b) {
int ans[100] = {0};
int flag_A = 1;
int flag_B = 1;
if(a < 0)
{
flag_A = -1;
a = -a;
}
if(b < 0)
{
flag_B = -1;
b = -b;
}
vector<int> V_a;
vector<int> V_b;
while(a != 0)
{
V_a.push_back(a%10);
a = a / 10;
}
while(b != 0)
{
V_b.push_back(b%10);
b = b / 10;
}
int i;
for( i = 0;i < V_a.size() || i < V_b.size();i++)
{
if(i < V_a.size() && i < V_b.size())
{
ans[i] = flag_A*V_a[i] + flag_B*V_b[i];
}
else if(i < V_a.size())
{
ans[i] = flag_A*V_a[i];
}else if(i < V_b.size())
{
ans[i] = flag_B*V_b[i];
}
}
int Ans = 0;
int carry = 0;
for(int j = 0;j < i;j++)
{
ans[j] += carry;
if(ans[j] < 0 && !(flag_A == -1 && flag_B == -1))
{
carry--;
ans[j] += 10;
}
else{
carry = ans[j] / 10;
}
ans[j] = ans[j] % 10;
}
if(carry != 0)
{
ans[i] = carry;
i++;
}
for(int j = i-1;j >= 0;j--)
{
Ans = Ans*10 + ans[j];
}
return Ans;
}
};