2 条题解

  • 0
    @ 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;
    }
    
    
    • -2
      @ 2023-8-5 21:18:13

      #include #include using namespace std; #define max 100000000 char a[max],b[max],temp[max]; int A[max],B[max],C[max],lena,lenb; int main(){ cin>>a; cin>>b; lena=strlen(a); lenb=strlen(b); if(lena<lenb||strcmp(a,b)<0&&lena==lenb) { cout<<"-"; strcpy(temp,a); strcpy(a,b); strcpy(b,temp); lena=strlen(a); lenb=strlen(b); } for(int i=0;i<lena;++i) A[i]=a[lena-1-i]-'0'; for(int i=0;i<lenb;++i) B[i]=b[lenb-1-i]-'0'; for(int i=0;i<lena;++i) { if(A[i]<B[i]) { A[i]+=10; A[i+1]--; C[i]=A[i]-B[i]; } else { C[i]=A[i]-B[i]; } } for(int i=lena-1;i>=0;--i) { if(C[i]==0&&lena>1) lena--; else break; } for(int i=lena-1;i>=0;--i) cout<<C[i]; return 0;

      }

      • 1

      信息

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