#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的情况
uva10106高精度乘法
最新推荐文章于 2022-02-25 19:38:17 发布
本文详细解读了C语言中实现字符串相乘的算法,包括输入字符串转换为整数数组、进行乘法运算并输出结果的过程。通过实例演示,帮助开发者理解底层逻辑并应用于实际项目。
933

被折叠的 条评论
为什么被折叠?



