青蛙跳台阶
-
抽象出的实现思路(递归思想:一般看第n项和第n-1项的关系)
1)
n==1时:有1种跳法
n==2时:有2种跳法
n==3时:有3种跳法
n==4时:有4种跳法
2)当n>2时,第一次跳的时候就有两种不同的选择:一是第一次仅仅跳1级,此时跳法数目等于后 面剩下的n-1级台阶的跳法数目,即为f(n-1);
3)还有一种选择是第一次跳2级,此时跳法数目等于后面剩下n-2级台阶的跳法数目,即为f(n-2);
-
过程图解
-
代码实现
public class TestDemo {
/**
* 青蛙跳台阶
* @param n 台阶数
* @return
*/
public static int jumpSteps(int n) {
if(n == 1) {
return 1;
} else if(n == 2) {
return 2;
} else {
return jumpSteps(n-1) + jumpSteps(n-2);
}
}
public static void main1(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(jumpSteps(n));
}
}
- 分析
1)分析完之后,会发现这个题其实就类似于求斐波那契数列,只不过第2项改成了2。
2)虽然代码实现不难,但是重要的还是画图分析并理解这一过程。
本期到此结束!谢谢观看!