大数相乘

来源:互联网 发布:北京四达时代通讯网络 编辑:程序博客网 时间:2024/06/07 12:41

简单的:

//大数相乘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;}


原创粉丝点击