4.leetcode题目9:Palindrome Number

这道题目不难,但是要屡清楚还是蛮有点复杂的


首先,负数不是回数,0是回数,要单独考虑这两种情况。

方法:比较整数的头和尾,相等则循环,不相等则return false;

取头尾的办法是:

 int n=1;
        while(x/n>=10){
            n=n*10;
        }//这算是一种比较好的表示方法了,速度快

我想到的方法是:

int n=0,a=x;

while(a/10>=1){

x=x/10;

n++;

n=n/100;

}

确定数x的位数,比如1234,对应n=1000;

第一位x/n,尾位则是x%10。

然后,去掉当前x的头和尾,组成新的数x,比如x=12321———>x=232,循环。

 x=x%n;//去头
            x=x/10;//去尾

这种方式是我没想到的

我想到的方法是连着上面我想到的那一段的:

p=x/pow(10,n);

q=x%10;

x=x-p*pow(10,n)-q;

n=n-2;


总之多学习别人的代码!!!

最后运行如上图,不是最快,我想不到更快的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值