这道题目不难,但是要屡清楚还是蛮有点复杂的
首先,负数不是回数,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;
总之多学习别人的代码!!!
最后运行如上图,不是最快,我想不到更快的了