任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可以得到一个回文数。
#include <stdio.h>
int main()
{
int i, j, k, count = 1;
printf("please input a number: ");
scanf("%d", &i);
while(!nonre(i+re(i)))
{
printf("[%d]: %d + %d = %d\n", count, i, re(i), i + re(i));
i = i + re(i);
count++;
}
printf("[%d]: %d + %d = %d\n", count, i, re(i), i + re(i));
}
int re(int a)
{
int t; /倒序函数/
for(t = 0; a > 0; a/=10)
{
t = t*10 + a%10;
}
return t;
}
int nonre(int s)
{
if(re(s) == s) return 1; /判断给定的整数是否是回文数/
else return 0;
}