1.题目描述I
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
1.1 解题思路
这和斐波那契数列是同一个思想,可以倒过来看:我要走完n层,我有两种方式,在n-1层走1步或者n-2层走2步。依次往下推导可得到这样一个表达式:
f(n) = f(n-1)+f(n-2);
但是作为递归,需要一个出口:
f(1) = 1; f(2) = 2;
1.2 code: java
//递归最复杂的方式,但题目限制了我们改进
public static int JumpFloor(int target) {
if(target == 1 || target == 2)
return target;
else return JumpFloor(target-1)+JumpFloor(target-2);
}
//也有用递推的思想
int jumpFloor(int target) {
int t1=1,t2=2,total=0;
if (target==1||target==2) return target;
for(int i=3;i<=target;i++) {
total=t1+t2;
t1=