#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#include<string.h>
const int dmax=10000;
int a[dmax],b[dmax],c[dmax],t[dmax],t1[dmax];
char s[dmax];
int main(){
int i,j,k,m,n,x,y;
gets(s);
x=strlen(s);
for (i=0;i<x;i++)
a[i+1]=s[x-i-1]-48;
for (i=x;i>=1;i--){
t[i/3+i%3==0?0:1]=t[i/3+i%3==0?0:1]*10+a[i];
}
x=x/3+x%3==0?0:1;
for (i=1;i<=x;i++)
a[i]=t[i];
gets(s);
y=strlen(s);
for (i=0;i<y;i++)
b[i+1]=s[y-i-1]-48;
for (i=y;i>=1;i--){
t1[i/3+i%3==0?0:1]=t1[i/3+i%3==0?0:1]*10+b[i];
}
y=y/3+y%3==0?0:1;
for (i=1;i<=y;i++)
b[i]=t1[i];
n=x>y?x:y;
for (i=1;i<=x;i++)
for (j=1;j<=y;j++)
c[i+j-1]=a[i]*b[j];
for (i=1;i<dmax;i++){
c[i+1]+=c[i]/1000;
c[i]%=1000;
}
n=dmax;
while (c[n]==0 && n>1) n--;
for (i=n;i>=1;i--){
if (c[i]<100 && i!=n)
printf("0");
if (c[i]<10 && i!=n)
printf("0");
printf("%d",c[i]);
}
return 0;
}
高精度乘法(压位)
最新推荐文章于 2022-08-15 17:54:00 发布