判断一个数是否是回文数

判断一个数是否是回文数

      若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数。

但是要注意,回文数不是只有奇数位,偶数位也可以是回文数,例如 123321;小数没有回文数。  回文数通俗的看就是,顺着看和反着看数字是同样大小的。

代码如下:

import java.util.Scanner;
/**
 * 判断一个数是否是回文数
 */
public class palindromeNum {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num = scanner.nextInt();
        System.out.println("是否回文:"+decide(num));
    }

    private static boolean decide(int num) {
        //将数字转换成char 数组
        char[] c = String.valueOf(num).toCharArray();
            //判断
            for (int i = 0, j = c.length - 1; i <= (c.length - 1) / 2; i++, j--) {
                if (c[i] == c[j]) {
                    return true;
                }else {   //其中一个不满足就不是回文数
                    return false;
                }
            }
            return false;
    }
}

判断一个数是否是回文数

       其中for中的条件   i <= (c.length - 1) / 2,而不应该为 i <= c.leng / 2;虽然这两种写法的结果相同,并且当输入的数的位数是奇数时二者效果相同,但是当输入的数的位数是偶数时,第二种写法会多于一次中间两数的判断。