原题地址 : http://acm.hdu.edu.cn/showproblem.php?pid=1002
#include <iostream>
//#include <fstream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int main(int argc, char const *argv[])
{
int a=0,b=0;
int n,sum=0,p=0,u=0;
//ifstream cin("in.txt");
string sa,sb,st;
vector<int> v;
map<char,int> m;
for (int i = 0; i <= 9; i++)
{
m[i+'0']=i;
}
cin>>n;
for (int j = 0; j < n; j++)
{
v.clear();
p=0;
u=0;
sum=0;
cin>>sa>>sb;
if (j!=0)
cout<<endl;
cout<<"Case "<<j+1<<":"<<endl;
cout<<sa<<" + "<<sb<<" = ";
if (sa.size()<sb.size())
{
st=sa;
sa=sb;
sb=st;
}
reverse(sa.begin(),sa.end());
reverse(sb.begin(),sb.end());
for (int k = 0; k < sa.size(); k++)
{
/* code */
a = m[sa[k]];
if (k>=sb.size())
b = 0;
else
b = m[sb[k]];
sum = a+b+p;
p=sum/10;
v.push_back(sum%10);
}
if (p==1)
v.push_back(1);
while(1)
{
vector<int>::iterator it =v.end()-1;
if (*it == 0) v.erase(it);
else break;
}
for(int l = v.size()-1;l>=0;l--)
{
if (u==0&&v[l]!=0)
u=1;
if (u==1)
cout<<v[l];
}
cout<<endl;
}
return 0;
}