

注意反向后可能会有前导0
#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <stack>
using namespace std;
class Int{
public:
vector<char> vs;
stack<char> S;
};
int main()
{
vector<Int> VI;
int m,flag=1;
cin >> m;
string str;
while (m!=0 && flag<=10)
{
str = to_string(m);
Int I;
for (string::iterator i=str.begin();i!=str.end();i++)
{
I.vs.push_back(*i);
}
VI.push_back(I);
flag++;
cin >> m;
}
for (int i=0;i<VI.size();i++)
{
vector<char>::iterator j,k;
for (j=VI[i].vs.begin();j!=VI[i].vs.end();j++)
{
cout << *j;
VI[i].S.push(*j);
}
cout << " ";
/*for (k=VI[i].vs.end()-1;k!=VI[i].vs.begin();k--)
{
cout << *k;
}*/
/*for (int q = VI[i].vs.size()-1;q!=-1;q--)
{
cout << VI[i].vs[q];
if (q==0 && VI[i].vs[0]!=0)
{
cout << VI[i].vs[0];
}
}*/
vector<char> ch;
while (!VI[i].S.empty())
{
//cout << VI[i].S.top();
ch.push_back(VI[i].S.top());
VI[i].S.pop();
}
for (int p = 0;p<ch.size();p++)
{
if (ch[p]!='0')
{
cout << ch[p];
}
}
cout << endl;
}
return 0;
}
网友评论