去除前导零就可
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <cmath>
typedef long long ll;
using namespace std;
vector<int> add(vector<int>& A, vector<int>& B);
int main() {
int n;
char a[5050];
char b[5050];
vector<int>A;
vector<int>B;
scanf("%d", &n);
while (n--) {
memset(a, '\0', sizeof(a));
memset(b, '\0', sizeof(b));
A.clear();
B.clear();
scanf("%s", a);
scanf("%s", b);
for (int i = strlen(a) - 1; i >= 0; i--) {
A.push_back(a[i]-'0');
}
for (int i = strlen(b) - 1; i >= 0; i--) {
B.push_back(b[i]-'0');
}
vector<int>C = add(A, B);
for (int i = C.size() - 1; i >= 0; i--) {
printf("%d", C[i]);
}
printf("\n");
}
return 0;
}
vector<int> add(vector<int>& A, vector<int>& B) {
int temp = 0;
vector<int>C;
while (A.back() == 0) A.pop_back();
while (B.back() == 0) B.pop_back();
for (int i = 0; i < A.size() || i < B.size(); i++) {
if (i < A.size()) temp += A[i];
if (i < B.size()) temp += B[i];
C.push_back(temp % 10);
temp /= 10;
}
if (temp) C.push_back(temp);
return C;
}
京公网安备 11010502036488号