求助大佬,不会做A+BProblem
查看原帖
求助大佬,不会做A+BProblem
370648
柠檬布丁吖楼主2023/1/17 20:50

高精度vector求调

#include<bits/stdc++.h>

using namespace std;

string s1,s2;
int l1,l2;
vector<int> a;
vector<int> b;
vector<int> c;
vector<int> v;

signed main(void) {

    cin>>s1>>s2;
    l1=s1.size();
    l2=s2.size();
    for(int i=0; i<l1; i++) {
        a.push_back(s1[i]-48);
    }
    for(int i=0; i<l2; i++) {
        b.push_back(s2[i]-48);
    }

    while(1) {

        if(a.empty()==1 && b.empty()==1){
            break;
        }

        if(a.empty()==1) {
            a.push_back(0);
        }

        if(b.empty()==1) {
            b.push_back(0);
        }

        if(a.back()+b.back()<10) {
            c.push_back(a.back()+b.back());
            a.pop_back();
            b.pop_back();
        } else if(a.back()+b.back()>=10) {
            c.push_back(a.back()+b.back()-10);
            a.pop_back();
            b.pop_back();
//          if((a.empty()==1 || b.empty()==1) && !(a.empty==1 && b.empty==1)){
            if(a.empty()==1 && b.empty()!=1) {
                int k=b.back();
                b.pop_back();
                b.push_back(k+1);
            } else if(a.empty()!=1 && b.empty()!=1) {
                a.push_back(1);
            } else if(a.empty()!=1 && b.empty()==1) {
                int k=a.back();
                a.pop_back();
                a.push_back(k+1);
            } else {
                int k=a.back();
                a.pop_back();
                a.push_back(k+1);
            }
        }
    }

    while(!c.empty()) {
        cout<<c.back();
        c.pop_back();
    }

    return 0;
}
2023/1/17 20:50
加载中...