注解
1、简单的字符串处理,以及回文数的判断。
2、字符串与数字的转换。
代码
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int isPalin(string s){
int len = s.length();
for(int i=0; i<len/2; i++){
if(s.at(i)!=s.at(len-i-1)){
return 0;
}
}
return 1;
}
string reverse(string s){
string s2;
for(int i=s.length()-1; i>=0; i--){
s2 += s.at(i);
}
return s2;
}
int strToInt(string s){
stringstream ss;
ss<<s;
int num;
ss>>num;
return num;
}
string intToStr(int num){
stringstream ss;
ss<<num;
string s;
ss>>s;
return s;
}
int main() {
string s;
while(cin>>s){
int cnt = 0;
vector<string> v;
while(!isPalin(s)){
v.push_back(s);
cnt++;
int next = strToInt(s) + strToInt(reverse(s));
s = intToStr(next);
}
v.push_back(s);
cout<<cnt<<endl;
cout<<v.at(0);
for(int i=1; i<v.size(); i++){
cout<<"--->"<<v.at(i);
}
cout<<endl;
}
return 0;
}