方法一:
class Solution {
public:
string addStrings(string num1, string num2) {
string num3;
int end1 = num1.size() - 1;
int end2 = num2.size() - 1;
int add = 0;
int val1 = 0;
int val2 = 0;
int next = 0;
while(end1 >= 0 || end2 >= 0 )
{
if(end1 >= 0)
{
val1 = num1[end1--] - '0';
}
else
{
val1 = 0;
}
if(end2 >= 0)
{
val2 = num2[end2--] - '0';
}
else
{
val2 = 0;
}
add = val1 + val2 + next;
next = 0;
if(add > 9)
{
next = 1;
add -= 10;
}
num3 += (add + '0');
}
if(next == 1)
{
num3 += '1';
}
reverse(num3.begin(), num3.end());
return num3;
}
};
方法二:
class Solution {
public:
string addStrings(string num1, string num2) {
string num3;
int next = 0;
int val_1;
int val_2;
int add = 0;
int end_1 = num1.size() - 1;
int end_2 = num2.size() - 1;
while(end_1 >= 0 || end_2 >= 0)
{
if(end_1 >= 0)
{
val_1 = num1[end_1--] - '0';
}
else
{
val_1 = 0;
}
if(end_2 >= 0)
{
val_2 = num2[end_2--] - '0';
}
else
{
val_2 = 0;
}
add = val_1 + val_2 + next;
next = 0;
if(add > 9)
{
next = 1;
add -= 10;
}
num3.insert(num3.begin(), add + '0');
}
if(next == 1)
{
num3.insert(num3.begin(), '1');
}
//reverse(num3.begin(), num3.end());
return num3;
}