注意进位:
class Solution {
public:
string addStrings(string num1, string num2) {
int i=num1.size()-1,j=num2.size()-1,flag=0;
string res;
while(i>=0&&j>=0)
{
int sum=(num1[i]-'0') + (num2[j]-'0') +flag;
flag=sum/10; //进位
sum %= 10;
res = char(sum+'0') + res;
i--;
j--;
}
while(i>=0)
{
int sum=(num1[i]-'0') + flag;
flag=sum/10;
sum %= 10;
res = char(sum+'0') + res;
i--;
}
while(j>=0)
{
int sum=(num2[j]-'0') +flag;
flag=sum/10;
sum %= 10;
res = char(sum+'0') + res;
j--;
}
if(flag>0)
res = char(flag + '0') + res;
return res;
}
};
本文介绍了一种使用C++实现的字符串加法器算法。该算法通过逐位相加并处理进位的方式,实现了两个大整数的加法运算。文章详细展示了如何遍历输入的字符串、处理不同长度的字符串以及最终将结果转换为字符串形式返回。
260

被折叠的 条评论
为什么被折叠?



