题目描述
跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:
通过分析可知 , 青蛙只有跳到最后一级台阶 只有两种情况 :
1.从倒数第一级 跳了1级 上来;
2.从倒数第二级 跳了2级 上来;
所以总方法可以设为: f(n-1)+f(n-2) 我们可以看出这是一个斐波那契数列
所以得出表达式
| 1, (n=1)
f(n) = | 2, (n=2)
| f(n-1)+f(n-2) ,(n>2,n为整数)
最后我们可以用递归来实现。
java实现:
public class Solution {
public int JumpFloor(int target) {
if (target <= 0) {
return -1;
} else if (target == 1) {
return 1;
} else if (target ==2) {
return 2;
} else {
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
}