//大数减法 要求1<=b<=a<=10^100 要实现b>a的只需兑换a,b数组在加上负号。。。
#include<stdio.h>
#include<string.h>
char a[105],b[105];
int main()
{
int n,i,j,p=1;
scanf("%d",&n);
while(n--){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%s%s",a,b);
int q=0;
int la=strlen(a),
lb=strlen(b);
for(i=la-1,j=lb-1;j>=0||i>=0;i--,j--){
if(j>=0) a[i]=a[i]-(b[j]-'0')+q;else a[i]=a[i]+q;//数a超出b位数的处理
q=0;
if(a[i]<'0'){
a[i]+=10;
q=-1;
}
}
printf("Case %d: ",p++);
for(i=0;i<la;i++){ //前面的0要略去
if(a[i]!='0') break;
}
if(i==la) printf("0");//a-b=0的情况
for(;i<la;i++)
printf("%c",a[i]);
printf("\n");
}
return 0;
}
//大数乘法
#include<stdio.h>
#include<string.h>
char c[3000]={"999999999999999999999"};
int a[3000];
int b=9999;
int main()
{
int i,l=strlen(c);
memset(a,0,sizeof(a));
for(i=0;i<l;i++)
a[i]=c[l-i-1]-'0';//转化数组
int c=0;//进位数
for(i=0;i<3000;i++){
int s=a[i]*b+c;//临时乘算数
a[i]=s%10;//取个位
c=s/10;
}
for(i=3000-1;i>=0;i--) if(a[i]) break;//去前导0
for(;i>=0;i--) printf("%d",a[i]);
return 0;
}
#include<stdio.h>
#include<string.h>
char a[105],b[105];
int main()
{
int n,i,j,p=1;
scanf("%d",&n);
while(n--){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%s%s",a,b);
int A=0,B=0;
int la=strlen(a),
lb=strlen(b);
for(i=0;i<la;i++)
A+=a[i]-'0';
for(i=0;i<lb;i++)
B+=b[i]-'0';
printf("Case %d: %d\n",p++,A+B);
}
return 0;
}