Java初学者尝试计算任意位数回文数

public static int count(int x) {
        int count = 0;   //设置一个统计变量,用来统计回文数的个数。
        for (int i = test.from(x); i < test.from(x + 1); i++) {
            boolean flag = true; //定义一个boolean类型的变量。
            for (int j = 0; j < x / 2; j++) {
                if (test.getArr(i, x)[j] != test.getArr(i, x)[x - 1 - j]) {//这里用!=比==的好处在于可以立即终止循环。
                    flag = false;
                    break;
                }
            }
            if (flag) {//当所取数字满足回文数的时候再统计。
                System.out.println(i);
                count++;
            }
        }
        return count;
    }
**************************************
        public static int from(int x) {
        int num = 1;
        for (int i = 1; i < x; i++) {
            num *= 10;
        }
        return num;
    }
***************************************
/**
用数组的思想对数字进行拆分
*/
    public static int[] getArr(int num, int x) {
        int[] arr = new int[x];
        for (int i = 0; i < x; i++) {
            arr[i] = num % 10;
            num /= 10;
        }
        return arr;
    }

/*当然  也可以用数字转换String再转换数组的方法,那样更为简单,但总感觉没有上文的逻辑性强。

       个人觉得还有一种算法。比如说要计算五位数的回文数个数:

       那么前两位一共有10-99   90种选择  第三位有0-9   10种选择  
       合计90*10=900个。                                    
       如果是6位:
       那么前三位将有100-999  900种选择;也就是说回文数有900个。
       请问各位博友还有没有其他思路。还望各位大牛不吝赐教。
*/

版权声明:本文为qq_40483063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。