不用单独把回文写成一个函数,只用写置反的函数,置反之后的结果是否与原来相同即可判断回文数,格式控制的需要注意下
#include<stdio.h>
#include<string.h>
int reverse(int num) {
int a, sum = 0;
while (num > 0) {
a = num % 10;
sum = sum * 10 + a;
num /= 10;
}
return sum;
}
int main(void)
{
int num, count, sum, flag, cup[1000];
while (scanf("%d", &num) != EOF) {
count = 0;
flag = 1;
memset(cup, 0, sizeof(cup));
sum = num;
while (1) {
if (reverse(sum) == sum) {
printf("%d\n", count);
printf("%d", flag?num:num-1);
flag = 0;
for (int i = 0; i < count; i++) {
printf("--->%d", cup[i]);
}
putchar('\n');
break;
} else {
sum += reverse(sum);
cup[count++] = sum;
}
}
}
return 0;
}