高精度乘法

来源:互联网 发布:三生网络直销是合法吗 编辑:程序博客网 时间:2024/05/17 08:55
#include <stdio.h>#include <cstring>#define MAXSIZE 200int main(){char a[MAXSIZE+10];char b[MAXSIZE+10];int aa[MAXSIZE+10];int bb[MAXSIZE+10];int cc[MAXSIZE*2+20];int strlena;int strlenb;int strlenc;int i,j,k,l;memset(aa,0,sizeof(aa));memset(bb,0,sizeof(bb));memset(cc,0,sizeof(cc));    scanf("%s",a);    scanf("%s",b);    strlena=strlen(a);    strlenb=strlen(b);    for (i = 0; i < strlena; ++i)    {    aa[i]=a[strlena-1-i]-'0';    }    for (i = 0; i < strlenb; ++i)    {    bb[i]=b[strlenb-1-i]-'0';    }    for(i=0;i<strlena;i++)    {       for(j=0;j<strlenb;j++)       {            cc[i+j]+=aa[i]*bb[j];            if(cc[i+j]>=10)            {                cc[i+j+1]+=cc[i+j]/10;                cc[i+j]-=cc[i+j]/10*10;            }       }    }    for(k=i+j;k>=0;k--)    {        if(cc[k]!=0)        break;    }    for(l=k;l>=0;l--)    {        printf("%d",cc[l]);    }    if(!((a[0]-'0')||(b[0]-'0')))    {        printf("0");    }    return 0;}


0 0
原创粉丝点击