题目
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
注意:
num1 和num2 的长度都小于 5100.
num1 和num2 都只包含数字 0-9.
num1 和num2 都不包含任何前导零。
你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
C++代码
主要考虑到进位。设置进位符flag
class Solution {
public:
string addStrings(string num1, string num2)
{
int i = num1.length() - 1;
int j = num2.length() - 1;
int flag = 0;
while(i>=0||j>=0)
{
int temp1 = (i < 0 ? 0 : num1[i] - '0');
int temp2 = (j < 0 ? 0 : num2[j] - '0');
int tmp = temp1 + temp2 + flag;
flag = tmp / 10;
sum = char(tmp % 10 + 48) + sum;
i--;
j--;
}
if (flag) sum = '1' + sum;
return sum;
}
};