2, 3, 5过不了,有无大佬相助, 感谢
查看原帖
2, 3, 5过不了,有无大佬相助, 感谢
1158172
YushenWOW楼主2024/4/10 14:48
#include <bits/stdc++.h>
using namespace std;

string a, b;
vector<int> A, B;

vector<int> add(vector<int> &A, vector<int> &B) {
    vector<int> res(max(A.size(), B.size()) + 1, 0);
    
    for (int i = 0; i < res.size(); i++) {
        if (i < A.size()) res[i] += A[i];
        if (i < B.size()) res[i] += B[i];
    }
    
    for (int i = 0; i < res.size() - 1; i++) {
        if (res[i] > 9) {
            res[i + 1] += res[i] / 10;
            res[i] %= 10;
            
        }
    }
    
    while (res.size() > 1 && res.back() == 0) res.pop_back();
    
    return res;
}

int main() {
    cin >> a >> b;
    
    for (int i = a.size() - 1; i >= 0; i--)
        A.push_back(a[i] - '0');
    for (int i = b.size() - 1; i >= 0; i--)
        B.push_back(a[i] - '0');
        
    auto C = add(A, B);
    
    for (int i = C.size() - 1; i >= 0; i--)
        printf("%d", C[i]);
        
    return 0;
}
2024/4/10 14:48
加载中...