题目链接:1027
数组记录每位相乘的结果---
然后%10进位
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int A[3000],B[3000],C[3000];
int main()
{
char a[1200],b[1200];
memset(A,0,sizeof(A));
memset(B,0,sizeof(B));
memset(C,0,sizeof(C));
scanf("%s%s",a,b);
int la=strlen(a);
int lb=strlen(b);
for (int i=0;i<la;i++)
A[la-i]=a[i]-'0';
for (int i=0;i<lb;i++)
B[lb-i]=b[i]-'0';
for (int i=1;i<=la;i++)
{
for (int j=1;j<=lb;j++)
C[i+j-1]+=A[i]*B[j];
}
for (int i=1;i<2500;i++)
if (C[i]>9)
{
C[i+1]+=C[i]/10;
C[i]%=10;
}
bool fafe=false;
for (int i=2500;i>0;i--)
{
if (fafe||C[i])
{
printf("%d",C[i]);
fafe=true;
}
}
printf("\n");
return 0;
}