您的位置:首页 > 编程语言 > Java开发

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

2017-10-03 15:06 369 查看
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个。
请问各位博友还有没有其他思路。还望各位大牛不吝赐教。
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java