40pts求助

P1303 A*B Problem

entity @ 2020-11-04 20:16:49

#include<iostream>
#include<string>
#include<cstring>
using namespace std;
/*
   1111
   1111
------- 
   1111
  1111
 1111
1111
1234321
12345
65432
807758040

*/
char A[5001]={},B[5001]={};
int a[5001]={},b[5001]={},c[5001]={},lena,lenb,lenc;
int main(){
    cin>>A>>B;
    lena=strlen(A);
    lenb=strlen(B);
    for(int i=0;i<lena;i++) a[lena-i-1]=A[i]-'0';
    for(int i=0;i<lenb;i++) b[lenb-i-1]=B[i]-'0';
    for(int i=0;i<=lena+lenb;i++) c[i]=0;
    for(int i=0;i<lena;i++)
        for(int j=0;j<lenb;j++)
            c[i+j]+=a[i]*b[j];
    for(int i=0;i<lena+lenb;i++)
        if(c[i]>10){
            c[i+1]+=c[i]/10;
            c[i]%=10;
        }
    int lenc=lena+lenb;
    while(lenc>=1&&c[lenc]==0) lenc--;
    for(int i=lenc;i>=0;i--) cout<<c[i];
    return 0;
}

by entity @ 2020-11-04 20:24:09

2333我好像知道自己哪里错了


|