回文数
题目
问题描述
1221 是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位
十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
思路1:
用1000~9999,9000个数中,一个个地分解出个、十、百、千位,个位跟千位,并判断十位过跟百位是否相等,是 则输出该数
思路2:
既然是4位十进制的数,且还是回文。以我的理解就好比是对称的,对称只用看一边就行了
例如:1221 看左边就是12
也就是说先输出12 再把12倒过来输出 就是1221 了
代码A:
public class A {
public static void main(String[] args) {
int[] a = new int[4];
for (int i = 1000; i < 10000; i++) {
a[0] = i / 1000; //千位
a[1] = (i / 100) % 10; //百位
a[2] = (i % 100) / 10; //十位
a[3] = i % 10; //个位
if (a[0] == a[3] && a[1] == a[2])
System.out.println(i);
}
}
}
代码B:
public class B {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println(i + "" + j + "" + j + "" + i);
}
}
}
}
虽然B代码少了分解位数的步骤,但由于for里又嵌套一个for,所以代码B比代码A会更耗时一点