5 条题解

  • -1
    @ 2023-8-1 15:28:38

    呵。

    给你面子😕 。

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int a[10000];
    int b[10000];
    int c[10000];
    
    int main()
    {
    
        string n,m;
        cin >>n >>m;
        char ch;
        cin >>ch;
        int la=n.length();
        int lb=m.length();
        for(int i=0; i<la; i++){
            a[i+1]=n[la-i-1]-'0';
        }
        for(int i=0; i<lb; i++){
            b[i+1]=m[lb-i-1]-'0';
        }
        if(ch=='+'){
            int lc=max(la,lb)+1;
            for(int i=1; i<=max(la,lb); i++){
                c[i]=a[i]+b[i]+c[i];
                c[i+1]=c[i+1]+c[i]/10;
                c[i]=c[i]%10;
            }
            if(c[lc]==0){lc--;}
            for(int i=lc; i>0; i--){
                cout <<c[i];
            }
        }
        if(ch=='*'){
            int lc=la+lb;
            for(int i=1; i<=la; i++){
                for(int j=1; j<=lb; j++){
                    c[i+j-1]=a[i]*b[j]+c[i+j-1];
                    c[i+j]=c[i+j-1]/10+c[i+j];
                    c[i+j-1]=c[i+j-1]%10;
                }
            }
            if(c[lc]==0){lc--;}
            for(int i=lc; i>0; i--){
                cout <<c[i];
            }
        }
        if(ch=='-'){
            int lc=la;
            for(int i=1; i<=la; i++){
                c[i]=a[i]-b[i]+c[i];
                c[i+1]--;
                c[i]=c[i]+10;
                c[i+1]=c[i+1]+c[i]/10;
                c[i]=c[i]%10;
            }
            if(c[lc+1]<0){
                c[lc]=abs(c[lc]-10);
                cout<<"-";
            }
            for(int i=lc; i>=1; i--){
                if(c[i+1]==0 && c[i]==0){lc--;}
                else{break;}
            }
            for(int i=lc; i>0; i--){
                cout <<c[i];
            }
        }
    
    	return 0;
    }
    

    😔人生苦短,为何我要用C++。

    信息

    ID
    822
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    52
    已通过
    23
    上传者