第20行的
x[0] = max(la,lb);改成x[0] = max(la,lb)+ 1,因为最后答案的位数有因为可能进位而多一位
代码:
```cpp
#include <bits/stdc++.h>
using namespace std;
string a,b;
int sa[501],sb[501],c[502];
int x[502];
int main(){
cin >> a >> b;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int la = a.size();
int lb = b.size();
sa[0] = la;
sb[0] = lb;
for(int i = 1; i <= la; i++){
sa[i] = a[i - 1] - '0';
}
for(int i = 1; i <= lb; i++){
sb[i] = b[i - 1] - '0';
}
x[0] = max(la,lb)+1;
for(int i = 1; i <= x[0]; i++){
x[i] = ((sa[i] + sb[i] + c[i-1]) % 10);
c[i] = (sa[i] + sb[i] + c[i-1]) / 10;
}
while(x[x[0]] == 0 && x[0] != 1)x[0]--;
for(int i = x[0]; i >= 1; i--)cout << x[i];
return 0;
}
```
by wangzhongqian @ 2024-05-01 21:54:02
求关
by wangzhongqian @ 2024-05-01 21:54:31
@[lihaoyu68](/user/1284034)
by wangzhongqian @ 2024-05-01 21:56:37
已关,谢谢dalao
by lihaoyu68 @ 2024-05-02 18:50:50