P1303求助

P1303 A*B Problem

block1_孟立宸 @ 2021-07-05 15:33:17

求助第4、5点TLE

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a1[101],b1[101];
    int a[101],b[101],c[10001],lena,lenb,lenc,i,j,x;
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    scanf("%s",a1);
    scanf("%s",b1);
    lena = strlen(a1);
    lenb = strlen(b1);
    for(i = 0;i <= lena - 1;i++)
    {
        a[lena-i] = a1[i]-48;
    }
    for(i = 0;i <= lenb - 1;i++)
    {
        b[lenb-i] = b1[i]-48;
    }
    for(i = 1;i<=lena;i++)
    {
        x = 0;
        for(j = 1; j<=lenb;j++)
        {
            c[i + j - 1] = a[i] * b[j] + x + c[i + j - 1];
            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(i = lenc;i>=1;i--)
    {
        cout << c[i];
    }
    cout << endl;
    return 0;
}

|