您的位置:首页 > 其它

UVa 10106 - Product

2012-06-16 00:29 323 查看
大数乘法。

代码如下:

#include<stdio.h>
#include<string.h>

void func(char a[])
{
int i, len=strlen(a);
char t;
for (i=0; i<len/2; i++)
{
t=a[i];
a[i]=a[len-i-1];
a[len-i-1]=t;
}
}

int main()
{
int alen, blen, s, len, i, j;
char a[260], b[260], r[1000], t;
while(scanf("%s%s%*c", a, b)==2)
{
memset(r, 0, sizeof(r));
alen=strlen(a);
blen=strlen(b);
func(a);
func(b);
for (i=0; i<alen; i++)
{
s=0;
for (j=0; j<blen; j++)
{
t=r[i+j]+(a[i]-'0')*(b[j]-'0')+s;
s=t/10;
r[i+j]=t%10;
}
if (s > 0)
r[i+j]+=s;
}
if (s > 0)
len=alen+blen;
else
len=alen+blen-1;
if (strcmp(a, "0") == 0 || strcmp(b, "0") == 0)
len = 1;
for (i=len-1; i>=0; i--)
printf("%c", r[i]+'0');
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: