悬赏关注*1,大佬们救救orz

P1303 A*B Problem

EZAIJ @ 2023-03-29 11:54:24

最后一个WA了...

#include<bits/stdc++.h>
using namespace std;

#define N 2010

int a[N],b[N],c[N],la,lb,lc;
char s1[N],s2[N];
int main()
{
    scanf("%s%s",s1,s2);
    la=strlen(s1),lb=strlen(s2),lc=la+lb;
    for(int i=0;i<la;i++)
        a[la-i]=s1[i]-'0';
    for(int i=0;i<lb;i++)
        b[lb-i]=s2[i]-'0';
    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]+=c[i+j-1]/10;
            c[i+j-1]%=10;
        }
    while(lc>1&&!c[lc]) lc--;
    for(int i=lc;i>0;i--)
        printf("%d",c[i]);
    return 0;
}

by wenqizhi1125 @ 2023-03-29 12:07:54

数组开小了,2000 + 2000 = 4000


by ZVitality @ 2023-03-29 12:59:19

@EZAIJ 楼上正解,你乘出来的数要能装得下才行。


|