“回文数“是一种数字。如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
判断一个整数是否是回文数的方法不止一种,最容易想到的一种方法就是:把整数转换成字符串,然后依次判断字符串前后对称位置的字符是否相等,如果全都相等,则表示该整数是回文数,否则不然。
然而,还有一种更为简洁点的方法则是:通过对整数的计算,得到该整数的反序整数(最低位变成最高位),判断两者是否相等,是则表示该整数是回文数,否则不然。此思路代码如下:
/*
程序功能:
判断一个数是否是回文数
*/
#include<stdio.h>
int main()
{
int num;
scanf("%d",&num);
int temp = num;
int n=0;
/*核心代码块:
得到输入值的逆序数:由num依次取得个位、十位、百位…为了得到逆序数,需要*10并加上下一位;
n每更新一次,num值去掉最后一位同时更新。
*/
while(num)
{
n = n*10+num%10;
num = num/10;
}
if(temp == n)
printf("Yes!\n");
else
printf("No!\n");
return 0;
}