9. 回文数 Palindrome Number

Determine whether an integer is a palindrome. Do this without extra space.
题意:判断一个数字是否为回文数

如何取得一个Integer的最高位?假设x = 688答:x / mask. 设置一个和x位数一样的mask,mask = 100,然后用x/mask,表示x里面有几个mask,即是最高位数字. 688里有6个100,即为6.

如何删去一个Integer的最高位?假设x = 688答:x = x % mask. 还是用这个mask,用 x = x % mask 即可得到688除以100的余数,这个余数其实等于删掉了x的最高位剩下的数.

如何取得一个Integer的最低位?假设x = 688答:x % 10.

如何删去一个Integer的最低位?假设x = 688答:x = x / 10.

  1. public class Solution {
  2. public bool IsPalindrome(int x) {
  3. if(x < 0) return false;
  4. if(x == 0) return true;
  5. int num = x;
  6. int div = 1;
  7. while(num >= 10){
  8. num /= 10;
  9. div *= 10;
  10. }
  11. while (x > 0) {
  12. int left = x / div;
  13. int right = x % 10;
  14. if (left != right){
  15. return false;
  16. }
  17. x = (x % div) / 10;
  18. div = div / 100;
  19. Console.WriteLine(x);
  20. Console.WriteLine(div);
  21. }
  22. return true;
  23. }
  24. }

  1. public boolean isPalindrome1(int x) {
  2. if (x<0 || (x!=0 && x%10==0)) return false;
  3. int rev = 0;
  4. while (x>rev){
  5. rev = rev*10 + x%10;
  6. x = x/10;
  7. }
  8. return (x==rev || x==rev/10);
  9. }





原文地址:https://www.cnblogs.com/xiejunzhao/p/6512334.html