高精度乘法模板

来源:互联网 发布:mac解压rar免费 编辑:程序博客网 时间:2024/05/17 06:56

char数组:

void chen(char a[],char b[])//a=a*b{ int i,j,k,l,sum,c[410]={0};  l=strlen(a)+strlen(b);  for(i=strlen(b)-1;i>=0;i--)  for(j=strlen(a)-1,k=i+j+1;j>=0;j--,k--)  {sum=(b[i]-'0')*(a[j]-'0')+c[k];c[k]=sum%10;c[k-1]+=sum/10;                       }  for(i=c[0]?0:1,j=0;i<l;i++)    a[j++]=(c[i]+'0'); a[j]=0;}


 string类:

void chenn(string &a,string b)//a=a*b{ int i,j,k,l,sum,c[410]={0};  l=a.length()+b.length();  for(i=b.length()-1;i>=0;i--)  for(j=a.length()-1,k=i+j+1;j>=0;j--,k--)  {sum=(b[i]-'0')*(a[j]-'0')+c[k];c[k]=sum%10;c[k-1]+=sum/10;                       }  i=c[0]?0:1;  while(a.length()<l-i) a=a+'0';  for(j=0;i<l;i++)    a[j++]=(c[i]+'0');}