回文数

问题描述

1221是一个非常特殊的数,它从左边读和右边读是一样的,编程求出所有这样的四位十进制数。

输出格式

按从小到大的顺序输出满足条件的四位十进制数。

思路

求出所有四位十进制的回文数,可以通过遍历四位数来找出千位与个位,百位与十位相等的数即可。也可以换个思路,四位十进制回文数,那就只有两个数在变化,挑出前两位数,利用for循环自增变化,输出时按照对应位置输出即可。

代码

遍历四位数

package dailytest;
public class d7_19 {
    public static void main(String[] args) {  
        for(int i = 1000; i < 10000;i++){
            int a,b,c,d;
            a = i/1000;
            b = (i/100)%10;
            c = (i/10)%10;
            d = i%10;
            if(a == d && b == c){
                System.out.println(i);
            }
        }
    }
 }

通过遍历所有四位数找到所需要的值,for循环次数相对于第二过大。

public class d7_19 {
    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);
            }
    }
}

这种方法直接得到所需要求的数,没有太多无效过程。