判断一个数字是不是回文数,具体的原理大致是:从后往前遍历整数的每一位,然后计算出从后往前看这个新整数,与原来的数进行比较,相等的话就是回文数。
任何一个数取余10都是这个数的最后一位,任何一个数除以10都是除去最后一位数剩下的数。一个数比如1234,除以10会得到123,取余10会得到4,构造新数,新数=新数*10+余数。一直到商等于0.
比较新数和原来的数
这里的m和y都是long型,是为了防止整数溢出。
class Solution {
public:
bool isPalindrome(int x) {
long m = x;
if (m < 0) {
m = -m;
}
long y = 0;
while (m > 0) {
y = y * 10 + m % 10;
m = m / 10;
}
if (y == x) {
return true;
}
else
return false;
}
};