0%

Palindrome Number

题目描述:判断回文数字

解决方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
不用将数字转成字符串,而是在数字长度一半的地方,将右半部分反转,与左半部分进行比较
若相等,则为回文数字;否则不是。
判断一般的位置:左边的数字不大于右边的数字
*/
bool isPalindrome(int x)
{
if (x < 0) return false;
if (x < 10)return true;
int left = x, right = 0;
if (!(left % 10))return false;//末尾是0的情况
while (left > right){
right = right * 10 + (left % 10);
left /= 10;
if ((left / 10) > 0 && (left / 10) <= right)
break;
}
if (left == right|| (left / 10) == right)return true;
return false;
}