#include<stdio.h>
#include<string.h>
int main()
{
char str1[1010];
char str2[1010];
char str3[1020];
str3[0]=='0';
int t,i,a;
int counter = 0;
scanf("%d",&t);
for (i = 0;i < t;i ++){
scanf("%s",&str1);
scanf("%s",&str2);
int j,k,p;
int flag = 0;//用来做标
if (strlen(str1)>=strlen(str2)){
for (j = strlen(str1)-1,k = strlen(str2)-1,p=0;j!=-1;j--,k--,p++){
;//从这里开始循环。
if (k == -1){for(a=0;a<1008;a++)str2[a]='0';k=1000;}
if (p==0&&str1[j]+str2[k]>105){
str3[p+1]='1';
str3[p]=str1[j]+str2[k]-58;
if(j==0)flag = 1;
}
else if (str1[j]+str2[k]+str3[p]>153){
str3[p+1]='1';
if(str3[p]=='1')str3[p]=str1[j]+str2[k]-57;
else str3[p]=str1[j]+str2[k]-58;
if(j==0)flag = 1;
}
else if(str3[p]=='1'){str3[p]=str1[j]+str2[k]-47;str3[p+1]='0';}
else {str3[p]=str1[j]+str2[k]-48;str3[p+1]='0';}
}}
else {
for (j = strlen(str1)-1,k = strlen(str2)-1,p=0;k!=-1;j--,k--,p++){
;//从这里开始循环。
if (j == -1){for(a=0;a<1008;a++)str2[a]='0';j=1000;}
if (p==0&&str1[j]+str2[k]>105){
str3[p+1]='1';
str3[p]=str1[j]+str2[k]-58;
if(k==0)flag = 1;
}
else if (str1[j]+str2[k]+str3[p]>153){
str3[p+1]='1';
if(str3[p]=='1')str3[p]=str1[j]+str2[k]-57;
else str3[p]=str1[j]+str2[k]-58;
if(k==0)flag = 1;
}
else if(str3[p]=='1'){str3[p]=str1[j]+str2[k]-47;str3[p+1]='0';}
else {str3[p]=str1[j]+str2[k]-48;str3[p+1]='0';}
}}
counter ++;
printf("Case %d:\n",counter);
if (flag == 0)p--;
printf("%s + %s = ",str1,str2);
for (p;p>-1;p--)
printf("%c",str3[p]);
printf("\n\n");
}
return 0;
}
自定义加法。
又增一战徒增烦恼
最新推荐文章于 2022-12-31 17:50:11 发布