给定两个字符串形式的非负整数 num1
和num2
,计算它们的和。
方法:逐位相加,逢十进一,与67二进制求和是一类题
class Solution {
public:
string addStrings(string num1, string num2) {
reverse(num1.begin(), num1.end());
reverse(num2.begin(), num2.end());
int len1 = num1.length();
int len2 = num2.length();
if(len1 < len2) //较短字符串用0补齐
num1.append(len2-len1, '0');
else
num2.append(len1-len2, '0');
int flag = 0;
string res;
for(int i = 0; i < num1.length(); i++) {
flag += num1[i] - '0'; //减去字符0的ASCII码得到对应的数字
flag += num2[i] - '0';
res += (flag%10 + '0');
flag /= 10;
}
if(flag)
res += '1';
reverse(res.begin(), res.end());
return res;
}
};