回文数

https://leetcode-cn.com/problems/palindrome-number/
回文数是指正序读和倒序读都一样的整数;
思路:

  1. 负数不是、个位数为 0 的且大于 10 的数不是;
  2. 反转数字的一半,例如 1221,返回后面的 2112,再与前面的 12 做比较;

首先获取最后一位数,1221 % 10 得到 1,同时移除最后一位数 1221 / 10121
122 % 10得到 2122 / 10 得到 12

  1. public static boolean printFun(int x) {
  2. if (x < 0 || (x != 0 && x % 10 == 0)) {
  3. return false;
  4. }
  5. int revNum = 0;
  6. // 原始数字小于反转数字时,说明已经反转一半
  7. while (x > revNum) {
  8. revNum = revNum * 10 + x % 10;
  9. x /= 10;
  10. }
  11. // 原始数字为偶数 为奇数
  12. return x == revNum || x == revNum / 10;
  13. }