高精度乘法模板

来源:互联网 发布:四川网络大学 编辑:程序博客网 时间:2024/05/19 00:38
#include<iostream>#include<cstring>#define maxn 100000+10using namespace std;int na[maxn],nb[maxn],nc[maxn];char a[maxn],b[maxn];void mul(){int i,j,lena,lenb;memset(na,0,sizeof(na));memset(nb,0,sizeof(nb));memset(nc,0,sizeof(nc));lena=strlen(a);lenb=strlen(b);for(i=0;i<lena;i++) na[i]=a[lena-i-1]-'0';for(i=0;i<lenb;i++) nb[i]=b[lenb-i-1]-'0';for(i=0;i<lena;i++)  for(j=0;j<lenb;j++) nc[i+j]+=na[i]*nb[j];int max=lena+lenb;for(i=0;i<max;i++) nc[i+1]+=nc[i]/10,nc[i]%=10;while(!nc[--max]);max++;for(i=0;i<max;i++) a[i]=nc[max-i-1]+'0';a[max]='\0';}int main(){while(cin>>a>>b){mul();puts(a);}return 0;}

0 0
原创粉丝点击