面试问题 有50级台阶,你每次可以走一阶或两阶,有多少种走法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 面试问题 有50级台阶,你每次可以走一阶或两阶,有多少种走法

面试问题 有50级台阶,你每次可以走一阶或两阶,有多少种走法

 2017/8/27 1:08:47  solong2008  程序员俱乐部  我要评论(0)
  • 摘要:有50级台阶,你每次可以走一阶或两阶,有多少种走法程序列出所有可能importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;publicclassGoStairs{privateList<Integer>stepStlye=newArrayList<Integer>();publicstaticfinalintSTAIRS_COUNT=10;publicvoidgoStairs
  • 标签:面试 问题 面试问题
有50级台阶,你每次可以走一阶或两阶,有多少种走法
程序列出所有可能

class="java" name="code">
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class GoStairs {

	private List<Integer> stepStlye = new ArrayList<Integer>();
	public static final int STAIRS_COUNT = 10;

	public void goStairs(int leftStairsCount) {
		if (leftStairsCount - 1 >= 0) {
			stepStlye.add(1);
			leftStairsCount = leftStairsCount - 1;
			goStairs(leftStairsCount);
			leftStairsCount = leftStairsCount + 1;
			stepStlye.remove(stepStlye.size() - 1);
		}
		if (leftStairsCount - 2 >= 0) {
			stepStlye.add(2);
			leftStairsCount = leftStairsCount - 2;
			goStairs(leftStairsCount);
			leftStairsCount = leftStairsCount + 2;
			stepStlye.remove(stepStlye.size() - 1);
		}
		if (leftStairsCount == 0) {
			System.out.println(Arrays.toString(stepStlye.toArray(new Integer[0])));
			return;
		}
	}

	public static void main(String[] args) {
		GoStairs ladder = new GoStairs();
		ladder.goStairs(STAIRS_COUNT);
	}
}

上一篇: 遇到5个面试题,要求一个小时,结果花了一天 下一篇: 没有下一篇了!
发表评论
用户名: 匿名