目录
1.题目描述:2.解题思路:3.编程实现(Java):
1.题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
2.解题思路:
默认初试条件为:f(0)=0,f(1)=1;当有两级台阶时,f(2)=f(2-2)+f(2-1); 由此我们可以推理为,当有n级台阶时,f(n)=f(n-1)+f(n-2)+···+f(n-n)=f(0)+f(1)+···+f(n-1);同理当n=n-1时,f(n-1)=f(0)+f(1)+···+f(n-2),然后两边加f(n-1),得到:f(n)=2*f(n-1)。这时一个递推公式,同样为了效率问题,用循环可以实现。
3.编程实现(Java):
public class JumpFloor_5 {
public static void main(String
[] args
) {
int n
= 3;
System
.out
.println("跳台阶种类有:" + JumpFloorII(n
) + "种");
}
public static int JumpFloorII(int target
) {
if (target
== 0) {
return 0;
}
if (target
== 1) {
return 1;
}
int res
= 1;
if (target
>= 2) {
for (int i
= 2; i
<= target
; i
++) {
res
= res
* 2;
}
}
return res
;
}
}