题目:给定一个数字,判断它是否是一个回文数字
如果可以用额外空间,则可以将数字转为字符串,然后判断字符串是否是一个回文串
不允许用额外空间,则只能对数字处理,将数字分为两半,一段顺序表示,一段逆序表示,判断他们是否相等
C++程序(https://discuss.leetcode.com/topic/12820/an-easy-c-8-lines-code-only-reversing-till-half-and-then-compare/2)如下:
bool isPalindrome(int x) {
if(x<0|| (x!=0 &&x%10==0)) return false;
int sum=0;
while(x>sum)
{
sum = sum*10+x%10;
x = x/10;
}
return (x==sum)||(x==sum/10); //数位为偶/奇
}