uva10106高精度乘法

来源:互联网 发布:网络支付账户管理办法 编辑:程序博客网 时间:2024/05/04 10:07
#include <stdio.h>#include <stdlib.h>#include <string.h>char a[255],b[255];int x[505],y[505],z[505];int main(){    while(scanf("%s%s",a,b)!=EOF)    {        int l1=strlen(a);        int l2=strlen(b);        int k=0,i,j;        memset(z,0,sizeof(z));        memset(x,0,sizeof(x));        memset(y,0,sizeof(y));        for(i=l1-1;i>=0;i--)        {            x[k++]=a[i]-'0';        }        k=0;        for(i=l2-1;i>=0;i--)        {            y[k++]=b[i]-'0';        }        for(i=0;i<l1;i++)        {            int l=i;            int c=0;            for(j=0;j<505;j++)            {                int s=z[l]+y[j]*x[i]+c;                z[l]=s%10;                c=s/10;                l++;            }        }        for(i=504;z[i]==0&&i>=0;i--);        if(i<0)            printf("0\n");        else        {          for(;i>=0;i--)            printf("%d",z[i]);          putchar('\n');        }    }    return 0;}
注意0的情况
原创粉丝点击