大数相乘

来源:互联网 发布:康有为知乎 编辑:程序博客网 时间:2024/06/09 19:13
#include<bits/stdc++.h>using namespace std;char a[50050];char b[50050];int aa[50050];int bb[50050];int sum[50050];int main(){    while(~scanf("%s",a))    {        scanf("%s",b);        memset(aa,0,sizeof(aa));        memset(bb,0,sizeof(bb));        memset(sum,0,sizeof(sum));        int j=0;        int l=strlen(a);        int ll=strlen(b);        for(int i=l-1; i>=0; i--)            aa[j++]=a[i]-'0';        j=0;        for(int i=ll-1; i>=0; i--)            bb[j++]=b[i]-'0';        for(int i=0; i<l; i++)        {            for(int j=0; j<ll; j++)            {                sum[i+j]+=aa[i]*bb[j];            }        }        int len=max(l+10,ll+10);        for(int i=0; i<len; i++)        {            if(sum[i]>9)            {                sum[i+1]+=sum[i]/10;                sum[i]%=10;            }        }        int post=0;        for(int i=len; i>=0; i--)        {            if(sum[i]==0)                post++;            else                break;        }        for(int i=len-post; i>=0; i--)            printf("%d",sum[i]);        printf("\n");    }}