题目:
判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,...
解法:
求出数字的位数,然后依次求商和求余判断是否相等。
代码:
class Solution {
public:
bool isPalindrome(int x) {
if(x < ) //负数有符号,肯定不是回文数
return false; int d = ;
while(x / d >= ) //d与x位数相同
d *= ; while(x)
{
if(x/d != x%) //比较最高位和最低位是否相等
return false;
x = x % d / ; //去掉最高位和最低位
d /= ; //d相应转换
} return true;
}
};