#include <iostream>
#include<stdio.h>
using namespace
std;
int main()
{
int T, count_T;
char a[1001], b[1001],
ans[1002];
cin >> T;
for(count_T=1; count_T <= T;
count_T++) {
cin >> a >> b;
int
la=strlen(a)-1, lb=strlen(b)-1, sign=0, i;
for(i=0;la>=0
&& lb>=0; la--,lb--,i++) {
sign += a[la] + b[lb] - ‘0‘
- ‘0‘;
ans[i] = sign % 10;
sign /= 10;
}
for(; la>=0; la--, i++) {
sign += a[la] -
‘0‘;
ans[i] = sign % 10;
sign /= 10;
}
for(; lb>=0; lb--, i++) {
sign += b[lb] -
‘0‘;
ans[i] = sign % 10;
sign /= 10;
}
if(sign) {
ans[i] = sign;
i++;
}
if(count_T!=1)
printf("\n") ;
printf("Case
%d:\n",count_T) ;
printf("%s + %s = ",a,b);
//
正向输入反向输出!!!不必考虑怎么在头位置加进位的问题。
for(i--; i>=0; i--) {
cout <<
(char)(ans[i] + ‘0‘);
}
cout << endl ;
}
return(0);
}
快疯了
原文:http://www.cnblogs.com/ct0421/p/3603900.html