1 条题解

  • 0
    @ 2025-3-1 21:36:31
    #include <bits/stdc++.h>
    
    using namespace std;
    
    bool cmp(vector<int> &A,vector<int> &B)
    {
      if(A.size()!=B.size()) return A.size()>B.size();
      for(int i = A.size()-1;i>0;i--)
      {
        if(A[i] != B[i])
        return A[i]>B[i];
      }
      return true;
    }
    
    vector<int> sub(vector<int>&A,vector<int>&B)
    {
      vector<int> c;
      int t = 0;
      for(int i = 0;i<A.size();i++)
      {
        t = A[i]-t;
        if(i<B.size()) t -= B[i];
        c.push_back((t+10)%10);
        if(t<0) t = 1;
        else t = 0;
      }
      while(c.size()>1&&c.back() == 0) c.pop_back();
      return c;
    }
    int main()
    {
    string a,b;
    vector<int> A,B;
    	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(b[i]-'0');
      vector<int>arr;
      if(cmp(A,B))
      arr = sub(A,B);
      else {arr = sub(B,A);cout<<"-" ;}
      for(int i = arr.size()-1;i>=0;--i) cout<<arr[i];
      return 0;
    }
    

    信息

    ID
    6190
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    112
    已通过
    30
    上传者