题解 | #a+b#
a+b
https://www.nowcoder.com/practice/4c39c984ea3848b48e111b8e71ec1dd4
#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;
struct bign{
int d[1001];
int n;
bign(){
memset(d, 0, sizeof(d));
n=0;
}
};
bign splus(bign a,bign b){
bign ans;
int fg=0;
int i;
for (i=0; i<(a.n>b.n?a.n:b.n); i++) {
ans.d[i]=(a.d[i]+b.d[i]+fg)%10;
fg=(a.d[i]+b.d[i]+fg)/10;
}
if (fg!=0) {
ans.d[i]=fg;
ans.n=i+1;
}
else ans.n=i;
return ans;
}
bign sbuild(string str){
bign ans;
ans.n=str.size();
for (int i=0; i<str.size(); i++) {
ans.d[i]=str[str.size()-i-1]-'0';
}
return ans;
}
int main() {
string a,b;
while (cin >> a >> b) {
bign ans=splus(sbuild(a),sbuild(b));
for (int i=ans.n-1; i>=0; i--) {
cout<<ans.d[i];
}
cout<<endl;
}
}

叮咚买菜工作强度 131人发布