简单的:
//大数相乘
int BigNumMul(const char *a,const char *b)
{
int num1=strlen(a);
int num2=strlen(b);
int *c=(int *)malloc(sizeof(int)*(num1+num2));
int k=num1+num2;
for(int i=0;i<k;++i)
{
c[i]=0;
}
for(int i=num1-1;i>=0;--i)
{
int tmp=0;
--k;
int p=k;
for(int j=num2-1;j>=0;--j)
{
int tmp1=(a[i]-'0')*(b[j]-'0');
c[p]+=tmp1+tmp;
tmp=c[p]/10;
c[p]=c[p]%10;
--p;
}
c[p]+=tmp;
}
bool t=false;
for(int i=0;i<num1+num2;++i)
{
if(!t&&*(c+i)!=0)
{
t=true;
}
if(t)
cout<<*(c+i);
}
if(!t)
{
cout<<"0";
}
cout<<endl;
free(c);
return 0;
}