转载:http://www.52harry.com/program/qtprogram/2011-10-13/230.html
人人笔试1:一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法?
import java.util.ArrayList;
public class 上楼梯 {
public static void Stragy(int[] StarNumOneStep, int MaxStep){
Stragy_(StarNumOneStep, MaxStep, new ArrayList<Integer>());
}
public static void Stragy_(int[] StarNumOneStep, int LeftStep, ArrayList<Integer> result){
if(LeftStep == 0){
Util.print(result);
}else{
for(Integer i : StarNumOneStep){
if(LeftStep - i >= 0){
result.add(i);
Stragy_(StarNumOneStep, LeftStep-i, result);
}
}
}
if(result.size() != 0){
result.remove(result.size() -1);
}
}
public static void main(String[] args) {
int MaxStep = 12;
int[] StarNumOneStep = new int[]{1,2,3};
Stragy(StarNumOneStep, MaxStep);
}
}
1937

被折叠的 条评论
为什么被折叠?



