判断数字的每一位与回文数的每一位是否相等:
class Solution {
public:
bool isPalindrome(int x) {
bool result;
if(x < 0)
return false;
else{
int n;
for(int i = 0; i <=10; i++){
int temp = x / (int)pow(10, i);
if(temp < 10){
n = i+1;
break;
}
}
int flag = 0;
for(int j = 1; j <=n/2; j++){
if(j == 1){
if((x % (int)pow(10, j)) / (int)pow(10, j-1) != x / (int)pow(10, n-j)){
flag = 1;
break;
}
}else{
if((x % (int)pow(10, j)) / (int)pow(10, j-1) != x / (int)pow(10, n-j) % (int)pow(10, 1)){
flag = 1;
break;
}
}
}
if(flag == 0)
result = true;
else
result = false;
}
return result;
}
};
判断反过来读的数字与原数字是否相等:
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0)
return false;
long int reverse = 0;
int temp = x;
while(temp != 0){
reverse = reverse * 10 + temp % 10;
temp = temp / 10;
}
return reverse == x;
}
};