回文数

题目

问题描述
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会更耗时一点


运行结果

image

posted @ 2021-07-19 15:52  为搞钱而写代码  阅读(153)  评论(0)    收藏  举报