分析
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
代码
先将字符串对齐,然后从末位开始相加,注意首位进1的情况。
string addStrings(string num1, string num2) {
int s1 = num1.size();
int s2 = num2.size();
//将num1和num2对齐
if (s1 > s2)
{
string tmp(s1 - s2, '0');
num2 = tmp + num2;
}
if (s2 > s1)
{
string tmp(s2 - s1, '0');
num1 = tmp + num1;
}
string result = "";
int count = 0;
for (int i = num1.size() - 1; i >= 0; --i)
{
count += num1[i] - '0' + num2[i] - '0'; //转为int数值
result = char('0' + count % 10) + result;
count /= 10; //比10大进1
}
//判断最左边是否进1
if (count == 1)
result = '1' + result;
return result;
}
测试用例
num1 = 10, num2 = 10
返回20