求指点

P1303 A*B Problem

日月影 @ 2017-03-15 16:54:08

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char n1[5000],n2[5000];
int a[5000],b[5000],c[100000],tot=1;
int main()
{
        //freopen("multiply.in","r",stdin);
//freopen("multiply.out","w",stdout);
    gets(n1),gets(n2);
    int ta=strlen(n1);int tb=strlen(n2);
    for(int i=0;i<=ta-1;i++)  a[ta-i]=n1[i]-'0';
     for(int i=0;i<=tb-1;i++)  b[tb-i]=n2[i]-'0';
    for(int i=1;i<=ta;i++)
    {
        for(int j=1;j<=tb;j++)
        {
            c[i+j-1]=a[i]*b[j]+c[i+j-1];
            c[i+j]+=c[i+j-1]/10;
            c[i+j-1]=c[i+j-1]%10;
        }
    }
    tot=ta+tb;
    while(c[tot]==0&&tot!=1)  tot--;
    for(int i=tot;i>=1;i--)  cout<<c[i];
    //    fclose(stdin);
    //fclose(stdout);
    return 0;
}

|