1 solutions

  • 0
    @ 2024-10-13 10:24:13
    #include<bits/stdc++.h>
    using namespace std;
    string s1,s2;
    bool cmp(string s1,string s2) //当s1>=s2 返回true 
    {
        if(s1.size()==s2.size())
        {
            return s1>=s2;
        }
        return s1.size()>s2.size();
    }
    const int N=100010;
    int a[N],b[N],c[N];
    int main()
    {
        cin>>s1>>s2;
        bool st=0;
        if(!cmp(s1,s2)) //判断是否是负数 
        {
            st=1;
            swap(s1,s2);
        }
        int lena=s1.size();
        int lenb=s2.size();
        int lenc=lena;
        for(int i=0,j=lena-1;j>=0;i++,j--)
        {
            a[i]=s1[j]-'0';
        }
        for(int i=0,j=lenb-1;j>=0;i++,j--)
        {
            b[i]=s2[j]-'0';
        }
        int t=0;
        for(int i=0;i<lena;i++)
        {
            c[i]=a[i]-b[i]+t;
            if(c[i]<0)
            {
                c[i]+=10;
                t=-1;
            }
            else
            {
                t=0;
            }
        }
        while(lenc>0&&c[lenc]==0) lenc--;
        if(st) cout<<"-";
        for(int i=lenc;i>=0;i--) cout<<c[i];
        return 0;
         
    }
    
    • 1

    Information

    ID
    957
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    (None)
    # Submissions
    51
    Accepted
    9
    Uploaded By