#include <stdio.h>
#include <string.h>
int main()
{
char a[101],b[101];//定义a,b数组!
int i,j,k,cas,count=1,num2,num3;
scanf("%d",&cas);//获取数据的组数
getchar();
while(cas--)
{
int c[10000]={0};//定义一个整型数组c
scanf("%s %s",a,b);//获取字符串a,b
num2=strlen(a);//num2为数组a的长度
num3=strlen(b);//num3为数组c的长度
getchar();
if(strcmp(a,"0")==0||strcmp(b,"0")==0)//当字符串a和字符串b为0时!
{
printf("Case %d:\n",count);
printf("%s * %s = 0\n",a,b);
count++;
}
else {
for(i=0;i<num2;i++)
{
for(j=0;j<num3;j++)
{
c[i+j]+=(a[num2-i-1]-'0')*(b[num3-j-1]-'0');//这个得用纸画才好理解!
k=i+j;
while(c[k]>=10)
{
c[k+1]+=c[k]/10;c[k]%=10;k++;}
}
}
i=9999;num2=i;//num2记录的是字符串c的长度!
while(c[i]==0)//当c[i]==0说明字符串前置为0,就要后移,找到实际数!
{
i--;num2= i;
}
printf("Case %d:\n",count);
count++;
printf("%s * %s = ",a,b);
for(i=num2;i>=0;i--)
{printf("%d",c[i]);}
printf("\n");}
if(cas>=1)//当cas>=1的时候,每次执行完,空一行!
{printf("\n");}
}
return 0;
}