为什么?????

P1303 A*B Problem

zqc123 @ 2021-11-19 21:54:59

#include<bits/stdc++.h>
using namespace std;
char sa[101],sb[101];
int la,lb,lc,jw,f,w,a[101],b[101],c[10200];
int main()
{
    scanf("%s",sa);
    scanf("%s",sb);
    la=strlen(sa);
    lb=strlen(sb);
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    for(int i=0;i<la;i++)
    {
        a[la-i-1]=sa[i]-'0';
    }
    for(int i=0;i<la;i++)
    {
        b[lb-i-1]=sb[i]-'0';
    }
    memset(c,0,sizeof(c));
    jw=0;
    for(int i=0;i<la;i++)
    {
        for(int j=0;j<lb;j++)
        {
            f=a[i]*b[j];jw=f/10;f%=10;
            w=i+j;c[w]=c[w]+f;
            c[w+1]=c[w+1]+jw+c[w]/10;
            c[w]%=10;
        }
    }
    lc=la+lb;
    while(c[lc]==0)
    {
        lc--;
    }
    if(lc<0)
    {
        printf("0/n");
    }
    else for(int i=lc;i>=0;i--)
    {
        printf("%d",c[i]);
    }
    return 0;
}

by CharlieCai @ 2021-11-19 22:11:19

a=input()
b=input()
a=int(a)
b=int(b)
print(a*b)

by rzh123 @ 2021-11-19 22:33:33

是不是没考虑 a*b 的长度大于 a、b 长度的情况?


by zqc123 @ 2021-11-20 08:58:26

@CharlieCai 高精度


by zqc123 @ 2021-11-20 11:03:08

@CharlieCai 我想起来了,python好像自带高精


|