【洛谷OJ】1008 三连击

import java.util.Iterator;
import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        int MAX = 329;
        LinkedList<Integer> list_1 = new LinkedList<Integer>();
        list_1.add(new Integer(1));
        list_1.add(new Integer(2));
        list_1.add(new Integer(3));
        list_1.add(new Integer(4));
        list_1.add(new Integer(5));
        list_1.add(new Integer(6));
        list_1.add(new Integer(7));
        list_1.add(new Integer(8));
        list_1.add(new Integer(9));
        StringBuffer sb = new StringBuffer("");
        Iterator<Integer> i = list_1.iterator();
        while (i.hasNext()) {
            Integer x = (Integer)i.next();
            LinkedList<Integer> list_2 = (LinkedList<Integer>)list_1.clone();
            list_2.remove(x);
            Iterator<Integer> j = list_2.iterator();
            while(j.hasNext()) {
                Integer y = (Integer)j.next();
                LinkedList<Integer> list_3 = (LinkedList<Integer>)list_2.clone();
                list_3.remove(y);
                Iterator<Integer> k = list_3.iterator();
                while(k.hasNext()){
                    Integer z = (Integer)k.next();                    
                    LinkedList<Integer> list_4 = (LinkedList<Integer>)list_3.clone();
                    list_4.remove(z);
                    
                    //must be smaller than MAX
                    int value = x*100 +y*10 + z;
                    if (value < MAX) {
                        
                        int doubleValue = value*2;
                        String tmp = String.valueOf(doubleValue);
                        Integer x1 = new Integer(tmp.substring(0, 1));
                        Integer y1 = new Integer(tmp.substring(1, 2));
                        Integer z1 = new Integer(tmp.substring(2, 3));
                        
                        if (x1!= y1 && x1!= z1 && y1!=z1 && list_4.contains(x1) 
                                && list_4.contains(y1) 
                                && list_4.contains(z1)) {
                           
                            list_4.remove(x1);
                            list_4.remove(y1);
                            list_4.remove(z1);
                            int tripleValue = value*3;
                            String tmp2 = String.valueOf(tripleValue);
                            Integer x2 = new Integer(tmp2.substring(0, 1));
                            Integer y2 = new Integer(tmp2.substring(1, 2));
                            Integer z2 = new Integer(tmp2.substring(2, 3));
                            if (x2!= y2 && x2!= z2 && y2!=z2 &&list_4.contains(x2) 
                                    && list_4.contains(y2) 
                                    && list_4.contains(z2)) {
                                if (sb.length()>0) {
                                     sb.append(System.getProperty("line.separator"));
                                }
                                sb.append(String.format("%d%d%d %d%d%d %d%d%d", x,y,z,x1,y1,z1,x2,y2,z2));
                                
                            }else {
                                continue;
                            }
                        }else {
                            continue;
                        }
                    }else {
                        continue;
                    }
                }
            }
        }
        System.out.println(sb.toString());
    }
}

猜你喜欢

转载自blog.csdn.net/axwolfer/article/details/81571175