版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36027342/article/details/86099597
判断回文数思路:
- 先判断是几位数
- 把最高位与最低位相比较,若相等转入步骤3,若不等,则终止,返回false
- 去掉最高位和最低位,位数减2;再转入步骤2
解决方法:
- 利用循环获得位数n
- 最高位=数/10^(位数-1);h = x / (int)pow(10, n - 1)
- 最低位=数%10;l = x % 10
- 去掉最高位:x = x % (int)pow(10, n - 1)
- 去掉最低位:x = x / 10
int ispalindrome(long int x) {
//判断回文数12321
//先判断是几位数,n=5
int n = 0, t = x, h, l;
while (x)//==>x!=0时
{
n++;
t = t / 10;//判断位数
}
while (x)
{
h = x / (int)pow(10, n - 1);//取最高位,h=12321/(10*10*10*10)=1
l = x % 10;//最低位
if (h != l) {
return 0;//不是回文数
}
else {
//继续比较
x = x % (int)pow(10, n - 1);//去掉最高位 x=2321
x = x / 10;//去掉最低位,x=232
n = n - 2;//位数减2
}
}
return 1;
}