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的情况