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 };