4 条题解

  • 2
    @ 2023-5-13 10:29:56
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1005;
    string a1,b1;
    int a[maxn],b[maxn],c[maxn],fa,fb,lena,lenb,lenc;
    void abb(int x[],int y[]){
    	lenc=max(x[0],y[0]);
    	for(int i=1;i<=lenc;i++){
    		c[i]=c[i]+x[i]+y[i];
    		if(c[i]>9){
    			c[i]=c[i]%10;
    			c[i+1]++;
    		}
    	}
    	if(c[lenc+1]!=0) lenc++;
    	for(int i=lenc;i>=1;i--)
    	cout<<c[i];
    }
    void jian(int x[],int y[]){
    	lenc=x[0];
    	for(int i=1;i<=lenc;i++){
    		if(x[i]<y[i]){
    			x[i+1]--;
    			x[i]=x[i]+10;
    		}
    		c[i]=x[i]-y[i];
    	}
    	while(c[lenc]==0) lenc--;
    	for(int i=lenc;i>=1;i--)
    	cout<<c[i];
    }
    int main(){
    	cin>>a1>>b1;
    	if(a1==b1){
    		cout<<0;
    		return 0;
    	}
        if(a1[0]=='-'){
        	fa=1;
        	a1.erase(0,1);
    	}
    	if(b1[0]=='-'){
    		fb=1;
    		b1.erase(0,1);
    	}
        a[0]=a1.size();
        for(int i=1;i<=a[0];i++){
        	a[i]=a1[a[0]-i]-'0';
    	}
        b[0]=b1.size();
        for(int i=1;i<=b[0];i++)
    	b[i]=b1[b[0]-i]-'0';
    	
    	if(fa==0 && fb==0){
    		if(a[0]<b[0] ||(a[0]==b[0] && a1<b1)){
    			cout<<"-";
    			jian(b,a);
    		}else jian(a,b);
    	} 
    	if(fa==0 && fb==1){
    		abb(a,b);
    	}
    	if(fa==1 && fb==1){
    		if(a[0]>b[0]||(a[0]==b[0]&&a1>b1)){
    			cout<<'-';
    			jian(a,b);
    		}else jian(b,a);
    	}
    	if(fa==1 && fb==0){
    		cout<<"-";
    		abb(a,b); 
    	}
    	return 0;
    }
    ```
    
    • 1
      @ 2023-5-13 9:36:14

      #include<bits/stdc++.h> using namespace std; string s1,s2; int a[1000],b[1000],c[10000],lena,lenb,lenc; int main(){ cin>>s1>>s2; if(s1=="0"||s2=="0"){ cout<<0; return 0; } lena=s1.size(); lenb=s2.size(); lenc=lena+lenb; for(int i=1;i<=lena;i++){ a[i]=s1[lena-i]-48; } for(int i=1;i<=lenb;i++){ b[i]=s2[lenb-i]-48; } for(int i=1;i<=lenb;i++){ for(int j=1;j<=lena;j++){ c[i+j-1]+=b[i]*a[j]; } } for(int i=1;i<=lenc;i++){ c[i+1]+=c[i]/10; c[i]=c[i]%10; } while(c[lenc]==0) lenc--; for(int i=lenc;i>=1;i--){ cout<<c[i]; } return 0; }

      • 0
        @ 2023-8-22 9:50:54
        1. #include<bits/stdc++.h> using namespace std; char a1[2001],b1[2001],c1[2001]; int a[2001],b[2001],c[2002]; int main(){ cin>>a1>>b1; int la=strlen(a1); int lb=strlen(b1); for(int i=1;i<=la;i++){ a[i]=a1[la-i]-'0'; } for(int i=1;i<=lb;i++){ b[i]=b1[lb-i]-'0'; } int x; for(int i=1;i<=la;i++){ x=0; for(int j=1;j<=lb;j++) { c[i+j-1]=a[i]*b[j]+x+c[i+j-1]; x=c[i+j-1]/10; c[i+j-1]%=10; } c[lb+i]=x; } int lc=la+lb; while(c[lc]==0&&lc>1) lc--; for(int i=lc;i>=1;i--) cout<<c[i]; return 0;
                • }
        • 0
          @ 2023-5-13 11:01:25

          #include<bits/stdc++.h> using namespace std; string s1,s2; int a[1000],b[1000],c[10000],lena,lenb,lenc; int main(){ cin>>s1>>s2; if(s1=="0" ||s2=="0"){ cout<<0; return 0;} lena=s1.size(); lenb=s2.size(); lenc=lena+lenb; for(int i=1;i<=lena;i++){ a[i]=s1[lena-i]-'0'; } for(int i=1;i<=lenb;i++){ b[i]=s2[lenb-i]-'0'; } for(int i=1;i<=lenb;i++){ for(int j=1;j<=lena;j++){ c[j+i-1]+=b[i]*a[j]; } } for(int i=1;i<=lenc;i++){ c[i+1]+=c[i]/10; c[i]=c[i]%10; }while(c[lenc]==0){ lenc--; }for(int i=lenc;i>=1;i--){ cout<<c[i]; } return 0; }

          • 1

          信息

          ID
          283
          时间
          1000ms
          内存
          16MiB
          难度
          6
          标签
          递交数
          158
          已通过
          45
          上传者