LeetCode题解——Palindrome Number

题目

判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,...

 

解法

求出数字的位数,然后依次求商和求余判断是否相等。

 

代码

 1 class Solution {
 2 public:
 3     bool isPalindrome(int x) {
 4         if(x < 0)  //负数有符号,肯定不是回文数
 5             return false;
 6         
 7         int d = 1;
 8         while(x / d >= 10)  //d与x位数相同
 9             d *= 10;
10         
11         while(x)
12         {
13             if(x/d != x%10)  //比较最高位和最低位是否相等
14                 return false;
15             x = x % d / 10;  //去掉最高位和最低位
16             d /= 100;         //d相应转换
17         }
18         
19         return true;
20     }
21 };

 

posted @ 2014-06-02 22:23  阿杰的专栏  阅读(154)  评论(0编辑  收藏  举报