这个是天师当初的面试题,可惜他没想出来
方法就是先遍历一次,确定位数n
然后再遍历n/2次,每次查看left和right位是否相同即可
PS:注意!负数不算回文数字!
bool isPalindrome(int x) {
int i,n=0,left,right,left_num,right_num;
int xx,xxx;
xx=x;
if(x<0)
return false;
while(xx!=0)
{
xx/=10;
n++;
}
left=0;
right=n-1;
while(left<right)
{
xx=x;
for(i=0;i<n;i++)
{
xxx=xx%10;
xx=xx/10;
if(i==left)
left_num=xxx;
else if(i==right)
{
if(xxx==left_num)
break;
else return false;
}
}
left++;
right--;
}
return true;
}