回文数字,就是左右对称的数字。判断是否是回文字,想到的办法就是将x从个位开始依次取数字赋给另一个数,最后看两者是否相等。
(1)C语言实现
bool isPalindrome(int x) {
if(x<0||x!=0&&x%10==0)
return false;
int sum = 0;
while(x>sum){
sum = sum*10+x%10;
x = x/10;
}
return x==sum||x==sum/10;
}
(2)C++实现
class Solution {
public:
bool isPalindrome(int x) {
if (x < 0) return false;
int p1 = 0, p2 = x;
while (p2 > 0) {
p1 = p1*10 + p2%10;
p2 /= 10;
}
return p1 == x;
}
};
/*解法二:
class Solution {
public:
bool isPalindrome(int x) {
if(x<0||x!=0&&x%10==0)
return false;
int sum = 0;
while(x>sum){
sum = sum*10+x%10;
x /= 10;
}
return x==sum||x==sum/10;
}
};
*/
(3)java实现
public class Solution {
public boolean isPalindrome(int x) {
if(x<0||x!=0&&x%10==0)
return false;
int sum = 0;
int p = x;
while(p>0){
sum = sum*10+p%10;
p = p/10;
}
return x==sum;
}
}