2 条题解

  • 1
    @ 2023-8-29 16:02:23
    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    #define LL long long
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    int s1[N],s2[N],s3[N],cnt=0;
    int main(){
    	string a,b;
    	cin>>a>>b;
    	int lena=a.size(),lenb=b.size();//123456789 
    	for(int i = 0 ; i < lena ; i++){
    		s1[i] = a[lena - i - 1] - '0';//987654321
    	}
    	for(int i = 0 ; i < lenb ; i++){
    		s2[i] = b[lenb - i - 1] - '0';
    	}
    	int z=max(lena,lenb);
    	for(int i=0;i<z;i++){
    		if(s1[i]+s2[i]>=10){
    			s3[i]=s2[i]+s1[i]-10;
    			s1[i+1]++;
    			if(i==z-1) cnt++;
    		}else s3[i]=s1[i]+s2[i];
    		
    	}
    	
    	if(cnt>0){
    		cout<<1;
    	}
    	for(int i=z-1;i>=0;i--){
    		cout<<s3[i];
    	}
    }
    
    • -1

      #include<bits/stdc++.h> using namespace std; string a1,b1; int a[505],b[505],c[100005]; int lena,lenb,lenc; int main() { cin>>a1>>b1; lena=a1.size(); lenb=b1.size(); for(int i=1;i<=lena;i++) a[i]=a1[lena-i]-'0'; for(int i=1;i<=lenb;i++) b[i]=b1[lenb-i]-'0'; int x=0; for(int i=1;i<=lena;i++) { x=0; for(int j=1;j<=lenb;j++) { c[i+j-1]+=a[i]*b[j]+x; x=c[i+j-1]/10; c[i+j-1]%=10; } c[i+lenb]=x; }

      lenc=lena+lenb;					
      while(c[lenc]==0&&lenc>1)
      	lenc--; 
      for(int i=lenc;i>=1;i--) 
      {
      	cout<<c[i]; 
      }	
      return 0;
      

      }

      • 1

      信息

      ID
      1676
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      288
      已通过
      70
      上传者