60分,求助
查看原帖
60分,求助
996992
MarkReisen楼主2024/7/27 10:43
string sub(string s,string t){
    string res;
    std::reverse(s.begin(), s.end());
    std::reverse(t.begin(), t.end());
    int i=0 , j = 0;
    int borrow = 0;
    while(i< s.size() || j < t.size() ||borrow!=0){
        int x = i < s.size() ? (s[i] - '0') : 0;
        int y = j < t.size() ? (t[i] - '0') : 0;
        int diff = x - y - borrow;
        if(diff < 0){
            diff += 10;
            borrow = 1;
        } else{
            borrow = 0;
        }
        res.push_back(diff + '0');
        i++;
        j++;
    }

    while (res.size()>1 && res.back() == '0'){
        res.pop_back();
    }
    return res;
}

void solve() {
    string s ,t;
    cin >> s>>t;

    string res ;
    if(s<t){
        cout<<"-";
        res = sub(t,s);
    }
    else{
        res = sub(s,t);
    }
    for(int i=res.size()-1;i>=0;i--){
        cout<<res[i];
    }
}
2024/7/27 10:43
加载中...