1 #include<stdio.h>
2 #include<string.h>
3 int main()
4 {
5 char a[220],b[220];
6 int m[220],n[220],c[440];
7 int i,j,k,t,la,lb,signa,signb;
8 char *pa,*pb;
9 while(1)
10 {
11 signa=signb=0;
12 scanf("%s%s",a,b);
13 pa=a;pb=b;
14 if(a[0]=='-') {signa=1;pa++;}//若是负数,则标志位signa为1
15 if(b[0]=='-') {signb=1;pb++;}
16 while(*pa=='0') pa++;//消0过程
17 while(*pb=='0') pb++;
18 if(!((*pa)||(*pb))) return 0;//都为0情况
19 if(!(*pa&&*pb)) {puts("0");continue;}//只有一个为0情况
20 la=strlen(pa);lb=strlen(pb);
21 printf("%d %d\n",la,lb);
22 memset(m,0,sizeof(m));
23 memset(n,0,sizeof(n));
24 memset(c,0,sizeof(c));
25 for(i=0;i<la;++i)
26 m[i]=pa[la-i-1]-'0';
27 for(i=0;i<lb;++i)
28 n[i]=pb[lb-i-1]-'0';
29 for(i=0;i<la;++i)
30 for(j=0;j<lb;++j)
31 c[i+j]+=m[i]*n[j];
32 for(i=t=0;i<la+lb;++i)
33 {
34 k=c[i]+t;
35 c[i]=k%10;
36 t=k/10;
37 }
38 if(signa!=signb) putchar('-');
39 for(i=la+lb-1;!c[i];i--);
40 while(i+1)
41 printf("%d",c[i--]);
42 putchar('\n');
43 }
44 return 0;
45 }