LeetCode:Palindrome Number

本文分享了一段解决回文数问题的代码实现,作者在尝试无果后睡眠,梦中获得灵感,成功一次性提交通过。文章详细介绍了代码逻辑,包括负数判断、位数获取及回文数验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

睡觉前看了一眼题目,没找到思路,就睡了,没想到早上做梦梦到算法,然后惊醒,随后一次性提交AC,实在难得。判断回文数,首先要注意负数不是回文数,其次就是如何对比头尾的数字是否相同。我的思路是,通过常规的取余的方法可以得到最低位的数字,那么最高位的数字可以通过整除10的倍数。那么这个10的倍数如何得到呢?可以通过计算X的位数得到。具体代码如下:

class Solution {
public:
    bool isPalindrome(int x) {
        int count,total;
        int m,n;
        count=0;
        total=x;
        if(x<0)
            return false;
        while(x!=0)//得到x的位数
        {
            count++;
            x=x/10;
        }
        x=total;
        while(x!=0)
        {
            m=x%10;
            n=(int)(total/pow((double)10,(double)count-1))%10;//得到需要对比的数字,该数字位于最低位
            if(m!=n)
                return false;
            x=x/10;
            count--;
        }
        return true;
        
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值