注意最后一次输出结果,不用在末尾加入空格。【神奇的错误】
#include <iostream>
#include <algorithm>
#include <fstream>
#include <string>
#include <vector>
#include <time.h>
#include <direct.h>
#include <io.h>
#include <stdlib.h>
#include <cassert>
#include <numeric>
#include <functional>
#include <iterator>
#include <map>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
int main()
{
int caseNum;
cin >> caseNum;
int nowIndex = 1;
while (nowIndex <= caseNum) {
string a, b; // gain input string number
cin >> a >> b;
string result;
int c = 0;
int left = 0;
int sum = 0;
int i = a.size()-1;
int j = b.size()-1;
while (i >= 0 || j >= 0 || c > 0) {
sum = 0;
// gain sum
if (i >= 0)
sum += a[i] - '0';
if (j >= 0)
sum += b[j] - '0';
sum += c;
// gain c and left
c = sum / 10;
left = sum % 10;
// save result [reverse]
result += left+'0';
i--; j--;
}
cout << "Case " << nowIndex << ":" << endl;
cout << a << " + " << b << " = ";
for(int i = result.size()-1;i>=0;i--)
cout<<result[i];
if (nowIndex < caseNum)
cout << endl << endl;
else
cout << endl;
nowIndex++;
}
return 1;
}