90fen...
查看原帖
90fen...
267517
Mikemao666楼主2020/5/4 16:37
#include <bits/stdc++.h>
using namespace std;
char a1[10000005];
char a2[10000005];
int a[1000005];
int b[1000005];
int c[1000005];
int main() {
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    scanf("%s%s",a1,a2);
    int s=strlen(a1);
    int t=strlen(a2);
    if(a1==a2){
        cout<<0;
        return 0;
    }
    if(s<t||(s==t&&a1<a2)){
        cout<<"-";
        swap(a1,a2);
        swap(s,t);
    }
    for(int i=0;i<s;i++){
        a[i]=a1[s-i-1]-'0';
        }
    for(int i=0;i<t;i++){
        b[i]=a2[t-i-1]-'0';
    }int maxi=max(s,t);
    for(int i=0;i<=maxi;i++){
        if(a[i]<b[i]){
            a[i+1]--;
            a[i]+=10;
        }
        c[i]=a[i]-b[i];
    }
    if(c[maxi]==0)
        maxi--;
    for(int i=maxi;i>=0;i--){
        cout<<c[i];
    }
  
    return 0;
}

两个相等就是不想

2020/5/4 16:37
加载中...