函数解法(包负数)
2025-08-04 10:48:26
发布于:广东
0阅读
0回复
0点赞
这道题板子题
不必多说
下面是代码
#include<bits/stdc++.h>
using namespace std;
void BNA(string s, string s1) {
int mlen = max(s.size(), s1.size());
vector<int> a(mlen, 0);
vector<int> b(mlen, 0);
vector<int> c(mlen + 1, 0);
for (int i = 0; i < s.size(); i++) {
a[i] = s[s.size() - 1 - i] - '0';
}
for (int i = 0; i < s1.size(); i++) {
b[i] = s1[s1.size() - 1 - i] - '0';
}
for (int i = 0; i < mlen; i++) {
c[i] += a[i] + b[i];
c[i + 1] += c[i] / 10;
c[i] %= 10;
}
int rlen = mlen;
if (c[mlen] > 0) {
rlen = mlen + 1;
}
string sum = "";
for (int i = rlen - 1; i >= 0; i--) {
sum += (c[i] + '0');
}
while (sum.size() > 1 && sum[0] == '0') {
sum.erase(0, 1);
}
cout << sum << endl;
}
int main() {
string s;
string s1;
cin>>s>>s1;
BNA(s,s1);
return 0;
}
这里空空如也
有帮助,赞一个