日期:2014-05-20  浏览次数:20665 次

迅雷笔试题目 java爬楼梯
一个人爬楼梯,一步可以迈一级,二级,三级台阶,如果楼梯有N级,编写程序,输出所有走法。java实现。

------解决方案--------------------
根据22L的提示,自己写了这个:
Java code

    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);
        }
    }