#include <stdio.h>
#include <string.h>
int main(){
int n,s=0;
scanf("%d",&n); //测试次数
while(n--)
{
s++; //case数
char str1[1000]={0},str2[1000]={0}; //字符串接受
int a1[1001]={0},a2[1001]={0}; //为之后转数组
scanf("%s%s",str1,str2); //接收数据
int len1=strlen(str1),len2=strlen(str2); //长度
int i,j,k=0; //转int型
for(i=len1-1;i>=0;i--)
a1[k++]=str1[i]-'0';
k=0;
for(i=len2-1;i>=0;i--)
a2[k++]=str2[i]-'0';
k= len1>len2?len1:len2; //大数在前
for(j=0;j<k;j++) //求和 进位
{
a1[j] += a2[j];
if(a1[j]>=10)
{
a1[j] -=10;
a1[j+1] +=1;
}
}
printf("Case %d:\n",s);
printf("%s + %s = ",str1,str2);
if(a1[k]==0) //第一位为0时
{
for(i=k-1;i>=0;i--)
printf("%d",a1[i]);
}
else{
for(i=k;i>=0;i--)
printf("%d",a1[i]);
}
printf("\n");
if(n>0) printf("\n");
}
}
1.当大数运算时 用字符串进行运算
2.注意数组的存储 【0-9】
if(a1[j]>=10)
{
a1[j] -=10;
a1[j+1] +=1;
}
3.注意最高位为0的情况
if(a1[k]==0) //第一位为0时
{
for(i=k-1;i>=0;i--)
printf("%d",a1[i]);
}
else{
for(i=k;i>=0;i--)
printf("%d",a1[i]);
}