欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

剑指Offer之判断一个数是否是回文数

程序员文章站 2024-03-22 16:18:52
...

整体思路就是取数字中最高位和最低位来比较,然后再分别向下取数循环此操作,如果其中有一个不相等,返回false

否则返回true,

下面以一个数字来具体说明

4  5  6  5   4

1.首先先取数字中的最高位,其他位都为0的数help,help是这样算的:

int help=1;
while(n/hlep>=10){
   help*=10;
}

2.n为给的数,也就是help最终变为40000,然后进行

n/help=4,//取数字最高位的数字

n%10=4//取数字最低为的数字

判断n/help和n%10的值是否相等,如果不相等返回false,如果相等,反复执行操作2,但是要更新n的值和help的值

更新为:

以上述的数字为例子,n为45654 % 1000 /10,也就是565

n=(n %help)/10

help=help/100,help变为100

public static boolean process(int num){
     if(num<0){
          return false;
     }
     int help=1; 
     while(n/help>=10){
        help*=10;
     }
     while(n!=0){
        //取数字最高位的数字和最低位数字进行比较
        if(n/help!=n%10){
           return false;
        }
        //去除上次已经比较过的最高位数字和最低位数字
        n=(n%help)/10; 
        help/=100;
     }
     return true;
}