题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:1.设f(n)为n个台阶的跳法,如果第一次跳一个台阶,剩下有f(n - 1)种跳法;如果第一次跳2个台阶,剩下有f(n - 2)种跳法,并且只有这两种情况,所以一共有f(n - 1) + f(n - 2)种跳法。
2.当只有一个台阶时,f(1) = 1; 当只有两个台阶时,f(2) = 2;总结为斐波那契数列。
代码:
public class Solution {
public int JumpFloor(int target) {
if(target == 1){
return 1;
}
if(target == 2){
return 2;
}
return JumpFloor(target - 1) + JumpFloor(target - 2);
}
}