给定两个字符串形式的非负整数 num1
和num2
,计算它们的和。
注意:
num1
和num2
的长度都小于 5100.num1
和num2
都只包含数字0-9
.num1
和num2
都不包含任何前导零。- 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。
这个我完全用67ti题的解法,只不过67题是2进制,这道题是10进制罢了,其他的没变,注意的就是从右往左计算。
#include<iostream>
#include<sstream>//用于格式转换
using namespace std;
class Solution {
public:
string addStrings(string num1, string num2) {
string result="";
int c=0;
int i=num1.size()-1;
int j=num2.size()-1;
while (i>=0||j>=0||c==1)
{
c+=i>=0 ? (num1[i--]-'0'):0;
c+=j>=0 ? (num2[j--]-'0'):0;
result=char(c%10+'0')+result;
c=c/10;
}
return result;
}
};
int main(){
string a="1";
string b="9";
Solution solution;
cout<<solution.addStrings(a,b)<<endl;
system("pause");
}