迅雷笔试题目 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); } }