No27、跳台阶问题(递归)

题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy等比较重视算法的公司
都曾先后选用过个这道题作为面试题或者笔试题。

 

解题思路:

 

经典的青蛙跳台阶.....第一次看到果断被干掉了....后来在网上看了一下..这尼玛就是斐波那契数列....疯了...

 

假设f(n)是到第n级台阶的跳数的总数

青蛙跳到第n阶台阶有两种方法,从第n-2级台阶跳2级和从第n-1级台阶跳1级..

这样就转化成求青蛙到达n-2级台阶的跳数和到达第n-2级台阶的跳数...

得到递推公式:

f(x) = f(x-1) + f(x -2);

 

斐波那契数列....

 

	
public class Q27 {
	public static void main(String[] args) {
		int stage = 5;
		System.out.println(getStep(stage));
	}
	public static int getStep(int stage)
	{
		if(stage == 1 || stage == 0)
			return 1;
		
		return getStep(stage-1) + getStep(stage - 2); 
	}
}


 

你可能感兴趣的:(100)