日期:2014-05-20 浏览次数:20883 次
    public static void main(String[] args) {
        goUp(5);
    }
    public static void goUp(int n) {
        ArrayList<String> al = new ArrayList<String>();
        p(n,al);
    }
    
    private static void p(int n,List<String> al) {
        if(n==0) {
            for(String str:al)
                System.out.print(str+" ");
            System.out.println();
        }
        else if(n<0) {
            return;
        }
        else {
            int num = al.size();
            al.add("1");
            p(n-1,al);
            al = al.subList(0, num);
            al.add("2");
            p(n-2,al);
            al = al.subList(0, num);
            al.add("3");
            p(n-3,al);
            al =al.subList(0, num);
        }
    }