*foj 1453 Bignum Arithmetic
Problem Description You can assume that each integer will contain at most 80 digits. The input ends with an end of file. Sample Input 代码: #include<stdio.h>
#include<string.h>
char s1[1005],s2[1005];
int a[1005],b[1005],c[1500];
void mul(char s1[],char s2[])
{
int l1,l2;
l1=strlen(s1),l2=strlen(s2);
int l=l1+l2;
int i,j,k=0;
for(i=l1-1,j=0;i>=0;i--,j++)a[j]=s1[i]-'0';
for(i=l2-1,j++)b[j]=s2[i]-'0';
memset(c,0,sizeof(c));//对数组c初始化
for(i=0;i<l1;i++)
for(j=0;j<l2;j++)
c[i+j]+=a[i]*b[j];
for(i=0;i<l;i++)
if(c[i]>9)
c[i+1]+=c[i]/10,c[i]%=10;
while(c[l]==0&&l>0)//*去掉前导0,但保证最后有一个0!!否则结果为0不能输出
l--;
for(i=l;i>=0;i--)
printf("%d",c[i]);
printf("n");
}
int main()
{
while(scanf("%s",s1)!=EOF)
{
getchar();//吞掉回车
gets(s2);
mul(s1,s2);
}
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |