第2行:大数B
(A,B的长度 <= 1000,A,B >= 0)
123456 234567
28958703552
#include<stdio.h>
#include<string.h>
int c[1000001];
int main()
{
char a[1001],b[1001],d[1001],e[1001];int i,w;
while(scanf("%s%s",a,b)!=EOF)
{
memset(c,0,sizeof(c));
int len=strlen(a);
int len1=strlen(b);
int j=0;
for(i=len-1;i>=0;i--)
{
d[j]=a[i];
j++;
}
j=0;
for(i=len1-1;i>=0;i--)
{
e[j]=b[i];
j++;
}
for(i=0;i<len;i++)
{
for(j=0;j<len1;j++)
{
c[i+j]=c[i+j]+(d[i]-'0'+0)*(e[j]-'0'+0);
}
}
c[(len-1)+(len1-1)+2]='\0';
for(i=0;i<len+len1-1;i++)
{
if(c[i]>9){c[i+1]=c[i+1]+c[i]/10;c[i]=c[i]%10;}
}
if(c[(len-1)+(len1-1)+1]==0)
{
c[(len-1)+(len1-1)+1]='\0';
w=(len-1)+(len1-1);
}
else
w=(len-1)+(len1-1)+1;
for(i=w;i>=0;i--)
{
printf("%d",c[i]);
}
printf("\n");
}
return 0;
}