真是不难的题目,做得好难,这么难通过,总结:要把握细节题,一方面,要仔细,当然的,另一方面,更重要的,是要有更轻巧的技巧来编程,可以少走很多弯路。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int CharToNum (char ch);
int main ()
{
int ncase , sum , a , b , temp , num;
string sa , sb , stemp;
vector<int> vec;
cin>>ncase;
while (ncase--)
{
cin>>sa>>sb;
if (sa.size() < sb.size())
{
stemp = sa;
sa = sb;
sb = stemp;
}
temp = 0;
for (int i = 0; i < sa.size(); i++)
{
a = CharToNum(sa[i]);
if (i >= sb.size()) b = 0;
else b = CharToNum(sb[i]);
sum = a + b + temp;
num = sum % 10;
temp = sum / 10;
vec.push_back(num);
}
if (temp != 0) vec.push_back(temp);
vector<int>::iterator it = vec.end()-1;
while (*it == 0)
{
vec.erase(it);
it = vec.end() - 1;
}
it = vec.begin();
while (*it == 0) it++;
if (it == vec.end()) cout<<"0";
for (; it != vec.end(); it++)
{
cout<<*it;
}
cout<<endl;
vec.clear();
}
return 0;
}
int CharToNum (char ch)
{
int num;
switch (ch)
{
case '0': num = 0; break;
case '1': num = 1; break;
case '2': num = 2; break;
case '3': num = 3; break;
case '4': num = 4; break;
case '5': num = 5; break;
case '6': num = 6; break;
case '7': num = 7; break;
case '8': num = 8; break;
case '9': num = 9; break;
}
return num;
}