题目要求:

            1.必须包含122345这六个数

            2.数字中的第三位(百位)不能为4

            3.输出6位数里所有符合以上两个条件的数

 

代码如下:

    static String[] numberStrings = {"1","2","3","4","5"};
    
    public static void main(String[] args) {
        for(int i=122345;i<999999;i++){
            onetof(i+"");
        }
        
    }
    public static void onetof(final String number){
        for(String n:numberStrings){
            if(number.indexOf(n) <0)
                return;
        }
        if(number.indexOf("4") ==3)
            return;
        if(number.lastIndexOf("2") ==number.indexOf("2"))
            return;
        if(number.indexOf("35")>0 || number.indexOf("53")> 0)
            return;
        
        System.out.println(number);
    }

 

      那么,问题来了,如果不是6位数,而是7位呢,或者其它多少位,所以需要改变一下:

if(number.indexOf("4") == number.length()-3)
            return;

这样就妥妥的了

 

 

但是这种方法感觉效率不高,如果有想法,欢迎留言....