题意分析:
任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。
写求一个整数的逆序数的函数inverse()。
解题思路:
先编写逆序数函数,在主函数里写下循环回文数猜想,并输出变换过程中得到的数值,两个数用空格隔开。
代码实现:
1 #include<stdio.h> 2 int inverse(int n) 3 { 4 int s; 5 while(n!=0) 6 { 7 s=s*10+n%10; 8 n=n/10; 9 } 10 return s; 11 } 12 main() 13 { 14 int m,n; 15 scanf("%d",&n); 16 while(m=inverse(n),m!=n) 17 { 18 printf("%d ",n); 19 n=m+n; 20 } 21 printf("%d",n); 22 return 0; 23 }
易错分析:
循环过程题目中已经给出,最后容易忽视输出最后一个回文数。