90分求助!#6 晚安
查看原帖
90分求助!#6 晚安
665408
218_lemon_tree楼主2024/7/18 21:33
#include<iostream>
#include<string>
using namespace std;

int main(){
    string s1,s2;
    int a[20000]={0},b[20000]={0},c[20000]={0};
    cin>>s1;
    cin>>s2;
    int la=s1.length();
    int lb=s2.length();
    int lc=max(la,lb);
    //检查哪个更大
    int flg=1;
    if(la<lb){
        flg=-1;
        swap(s1,s2);
        swap(la,lb);
    }
    else if(la==lb){
        for(int i=0;i<la;i++){
            if(s1[i]>s2[i]){
                flg=1;
                break;
            }else if(s1[i]<s2[i]){
                flg=-1;
                swap(s1,s2);
                break;
            }
        }
    }
    // 现在肯定a比b大
    for(int i=0;i<la;i++){
        a[i]=s1[la-i-1]-'0';
    }
    for(int i=0;i<lb;i++){
        b[i]=s2[lb-i-1]-'0';
    }
    for(int i=0;i<lc;i++){
        if(a[i]>=b[i]) c[i]=a[i]-b[i];
        else{
            c[i]=10+a[i]-b[i];
            a[i+1]--;
        }
    }
    while(c[lc-1]==0&&lc>1)lc--;
    if(flg<0)   cout<<"-";
    for(int i=lc-1;i>=0;i--){
        cout<<c[i];
    }
    return 0;
}
2024/7/18 21:33
加载中...