本题可以用字符串、数字进行解决。
由于本人对于字符串不太熟悉,于是选择对数字进行处理进行操作
#include<stdio.h>
#include<math.h>
#include<string>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
bool hui(int a, int &t)//判断是否为回文数,不是则返回数字的逆序数
{
int i;
int temp = a;
t = 0;
while(a>0){
t = t*10 + a%10;
a /= 10;
}
return temp == t;
}
int main() {
int num, v[200], count, temp, i;
while(scanf("%d",&num)!=EOF){
v[0] = num;
count = 0;//记录个数
while(1){
if(hui(num, temp))
break;
else//不是回文数进行的操作
{
num += temp;
count++;
v[count] = num;
}
}
cout << count << endl;
cout << v[0];
for(i=1; i<=count; i++)
cout << "--->" << v[i];
cout << endl;
}
return 0;
}