不用说了吧
直接n^2乘
a的第i位乘b的第j位的值加给c的第i+j位
#include<bits/stdc++.h>
using namespace std;
const int maxn=20009;
char x[maxn],y[maxn];
int a[maxn],b[maxn],c[2*maxn+22];
int main()
{
cin>>x>>y;
int len1=strlen(x),len2=strlen(y);
for(int i=len1-1,j=0; i>=0; i--,j++) a[j]=x[i]-'0';
for(int i=len2-1,j=0; i>=0; i--,j++) b[j]=y[i]-'0';
for(int i=0; i<len1; i++)
for(int j=0; j<len2; j++)
c[i+j]+=a[i]*b[j];
int i;
for(i=0; i<2*maxn; i++)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[i]==0) i--;
if(i<0) cout<<"0";
for(; i>=0; i--)
cout<<c[i];
cout<<endl;
}
return 0;
}