C++,80分求助

P1303 A*B Problem

Stronary @ 2023-05-29 17:28:34

#include<bits/stdc++.h>
using namespace std;
char A[2001];
int NUMA[2001];
char B[2001];
int NUMB[2001];
int sum[4001];
int main(){
    memset(A,0,sizeof(A));
    memset(B,0,sizeof(B));
    scanf("%s%s",A,B);

    memset(NUMA,0,sizeof(NUMA));
    memset(NUMB,0,sizeof(NUMB));
    memset(sum,0,sizeof(sum));
    int LA=strlen(A),LB=strlen(B);
    for(int i=LA-1;i>=0;i--){
        NUMA[2001-LA+i]=(int)A[i]-(int)'0';
    }
    for(int i=LB-1;i>=0;i--){
        NUMB[2001-LB+i]=(int)B[i]-(int)'0';
    }
    for(int i=0;i<=LA-1;i++){
        for(int j=0;j<=LB-1;j++){
            sum[2000-i-j]+=NUMA[2000-i]*NUMB[2000-j];

        }

    }
    int L=LA+LB-1;
    for(int i=0;i<=L-1;i++){
        while(sum[2000-i]>=10){
            sum[2000-i]-=10;
            sum[1999-i]+=1;
        }
        if(sum[2000-L]>0)L++;
    }
    while(sum[2001-L]==0&&L>1)L--;
    for(int i=L-1;i>=0;i--)printf("%d",sum[2000-i]);
    return 0;
}

5WA了


by fkcufk @ 2023-05-29 18:15:51

@Stronary

print(int(input())*int(input()))

|