#1、判断给定的一个数字是否是回文数
#2、解题思路
负数不是回文数,数字末尾是0时候,只有数字本身是0才是回文数,不然就不是
把数字截成两段,当原始数字小于新生成的数字的时候就正好从中间截断了(如果是奇位数,新生成的多一位)
#3、Notes: 截断的手法
#4、code
class Solution {
public:
bool isPalindrome(int x) {
if(x<0 || (x%10==0 && x!=0)) return false; // 不可能的直接返回错误
int reNum=0;
while(x>reNum) //判断截断的时机
{
reNum=reNum * 10 + x % 10; // 新生成的数字
x=x/10;
}
return x == reNum || x == reNum / 10; // 如果是奇数位个,则用后一个判断
}
};