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

判断回文数思路:

  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;
}

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值