2 条题解

  • -1
    @ 2023-3-18 22:54:55
    #include <bits/stdc++.h>
    using namespace std;
    const int MAXN=1e4+4;
    char s1[MAXN]={},s2[MAXN]={},tmp[MAXN]={};
    int a[MAXN]={},b[MAXN]={},c[MAXN]={};
    int main() {
        cin>>s1>>s2;
        int lena=strlen(s1),lenb=strlen(s2);
        if((lena<lenb)||(lena==lenb&&strcmp(s1,s2)<0))
        {
            printf("-");
            strcpy(tmp, s1);
            strcpy(s1, s2);
            strcpy(s2, tmp);
            lena=strlen(s1);
            lenb=strlen(s2);
        }
        for(int i=0;i<lena;i++)a[i]=s1[lena-i-1]-'0';
        for(int i=0;i<lenb;i++)b[i]=s2[lenb-i-1]-'0';
        for(int i=0;i<lena;i++)
        {
            if(a[i]<b[i])
            {
                a[i+1]--;
                a[i]+=10;
            }
            c[i]=a[i]-b[i];
        }
        for(int i=lena-1; i>=0; i--)
        {
            if(0==c[i]&&lena>1)lena--;
            else break;
        }
        for(int i=lena-1;i>=0;i--)cout<<c[i];
        return 0;
    }
    
    

    信息

    ID
    1677
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    151
    已通过
    54
    上传者