C经典题目:判断回文数,如12321

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36027342/article/details/86099597

判断回文数思路:

  1. 先判断是几位数
  2. 把最高位与最低位相比较,若相等转入步骤3,若不等,则终止,返回false
  3. 去掉最高位和最低位,位数减2;再转入步骤2

解决方法:

  1. 利用循环获得位数n
  2. 最高位=数/10^(位数-1);h = x / (int)pow(10, n - 1)
  3. 最低位=数%10;l = x % 10
  4. 去掉最高位:x = x % (int)pow(10, n - 1)
  5. 去掉最低位: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;
}

猜你喜欢

转载自blog.csdn.net/weixin_36027342/article/details/86099597