您的位置:首页 > 其它

4.leetcode题目9:Palindrome Number

2016-03-03 18:11 239 查看
这道题目不难,但是要屡清楚还是蛮有点复杂的

首先,负数不是回数,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;

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


最后运行如上图,不是最快,我想不到更快的了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: