判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
三种方法:
1 将整数转化为字符串,存入数组,遍历 (略)
2.数学方法,找首位和末位,迭代
3.数学方法,翻转折叠
2.
bool isPalindrome(int x){
if(x<0||x%10==0&&x!=0) return false;
int div=1;
int left,right;
while(x/div>=10) div=div*10;//注意为大于等于10
while(x>0)//注意循环条件
{
right=x%10;//末位
left=x/div;//首位
if(left!=right) return false;
x=(x%div)/10; //分离出中间数,以便再次循环
div=div/100;
}
return true;
}
bool isPalindrome(int x){
if(x<0||x%10==0&&x!=0)
return false;
int a;
int y=0;
while(x>y)
{
a=x%10;
y=a+y*10;
x=x/10;
}
return (x==y || x==y/10);
}