文章
38
粉丝
11
获赞
2
访问
26.0k
#include
using namespace std;
string Add(string a,string b){
int flag = 0;
if(a[0] == '-' && b[0] == '-'){
a = a.substr(1,a.length() - 1);
b = b.substr(1,b.length() - 1);
flag = 1;
}
if(a.length() < b.length()) a.swap(b);//a一直为数较长的字符串
string result(a.length(),0);//设置result为长度为a.length的0字符串
b.insert(0,a.length() - b.length(),'0');
//s1.insert(pos,n,c)在字符串s1的第pos个位置前 插入n个字符c
int carry = 0;//进位
for(int i = a.length() - 1;i >= 0;i--){
int sum = (a[i] - 48) + (b[i] - 48) + carry;
carry = sum / 10;
result[i] = sum % 10 + 48;
}
//如果最后出来进位仍不为0,说明两个数相加进位了
if (carry != 0) result.insert(result.begin(),c...
登录后发布评论
暂无评论,来抢沙发