#include<stdio.h>
#include<string.h>
# define MAX 200
void multiplay(int a[],int b[],int c[],int len_a,int len_b)
{
int p[MAX][MAX],i,j,x; //p[len_b][len_a]
for(i=0;i<MAX;i++) //清零
c[i]=0;
for(i=0;i<MAX;i++) //清零
for(j=0;j<MAX;j++)
p[i][j]=0;
for(i=0;i<len_b;i++)
for(j=0;j<len_a;j++)
p[i][j]=a[j]*b[len_b-1-i];
/* printf("\n");
for(i=0;i<len_b;i++)
{ for(j=0;j<len_a+len_b;j++)
printf("p[%d][%d]=%d ",i,j,p[i][j]);
printf("\n");
}*/
for(i=0;i<len_b;i++) //调整数组
for(j=len_a-1;j>=0;j--)
{
x=len_b-i;
// printf("x=%d ",x);
p[i][j+x]=p[i][j];
p[i][j]=0;
}
/*printf("\n调整后\n");
for(i=0;i<len_b;i++)
{
for(j=0;j<len_a+len_b;j++)
printf("p[%d][%d]=%d ",i,j,p[i][j]);
printf("\n");
}*/
for(j=0;j<len_a+len_b;j++)
for(i=0;i<len_b;i++)
c[j]+=p[i][j];
/* printf("\n");
for(i=0;i<len_a+len_b;i++)
printf("c[%d]=%d ",i,c[i]);*/
}
int my_print(int c[],int a,int b,int flag_a,int flag_b)
{
int i;
if(c[0]==0)
{
for(i=0;i<a+b;i++)
{
c[i]=c[i+1];
c[i+1]=0;
}
my_print(c,a,b,flag_a,flag_b);
}
else
{
/* printf("\n");
for(i=0;i<a+b;i++)
printf("c[%d]=%d ",i,c[i]);*/
printf("\n ");
if(c[0]==-1) //判零语句
printf("0\n");
else
{
printf("%d",c[0]*flag_a*flag_b);
i=1;
while(c[i]!=-1)
{
printf("%d",c[i]);
i++;
}
printf("\n");
}
}
}
int my_scanf(int a[])
{
int i,flag,len;
char ch[MAX];
printf("\nplease input a number:");
gets(ch);
len=strlen(ch);
if(ch[0]=='-')
{
flag=-1;
for(i=1;i<len;i++)
a[i-1]=ch[i]-'0';
a[len-1]=-1; //结束标为-1
}
else
{
flag=1;
for(i=0;i<len;i++)
a[i]=ch[i]-'0';
a[len]=-1; //结束标为-1
}
// for(i=0;i<len;i++)
// printf("a[%d]=%d ",i,a[i]);
return flag; //正负标
}
void my_chang(int c[],int len_a,int len_b) //数组进位
{
int i;
for(i=len_a+len_b-1;i>=0;i--)
{
c[i-1]+=c[i]/10;
c[i]=c[i]%10;
}
c[len_a+len_b]=-1;
//printf("\n");
// for(i=0;i<len_a+len_b;i++)
// printf("c[%d]=%d ",i,c[i]);
}
int length(int a[]) //数组求长
{
int i;
for(i=0;a[i]!=-1;i++);
// printf("length=%d\n",i);
return i;
}
void main()
{
int a[MAX],b[MAX],flag_a,flag_b;
int c[MAX],len_a,len_b;
flag_a=my_scanf(a);
flag_b=my_scanf(b);
len_a=length(a);
len_b=length(b);
if(a>=b)
{
multiplay(a,b,c,len_a,len_b);
my_chang(c,len_a,len_b);
}
else
{
multiplay(b,a,c,len_b,len_a);
my_chang(c,len_b,len_a);
}
my_print(c,len_a,len_b,flag_a,flag_b);
}