高精度乘法

来源:互联网 发布:破解免流软件 编辑:程序博客网 时间:2024/05/18 00:35
#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;char a[105],b[105];int x[105],y[105],z[10000005],tmp;int main(){    while(scanf("%s%s",a+1,b+1)!=EOF)    {        int l1=strlen(a+1),l2=strlen(b+1),l3;        for(int i=1;i<=l1;i++)            x[i]=a[l1-i+1]-'0';        for(int i=1;i<=l2;i++)            y[i]=b[l2-i+1]-'0';        memset(z,0,sizeof(z));        for(int i=1;i<=l1;i++)        {            tmp=0;            for(int j=1;j<=l2;j++)            {                z[i+j-1]+=(x[i]*y[j]+tmp);                tmp=z[i+j-1]/10;                z[i+j-1]%=10;            }            z[i+l2]=tmp;        }        l3=l1+l2;        while(z[l3]==0&&l3>=1)            l3--;        for(int i=l3;i>=1;i--)            printf("%d",z[i]);        printf("\n");    }    return 0;}

0 0
原创粉丝点击