题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解题思路
题目只有两种跳法,跳1步或者跳2步,那么假定第一次跳的是一步,那么剩下的是n-1个台阶,跳法是f(n-1)。假定第一次跳的是2步,那么剩下的是n-2个台阶,跳法是(n-2)。由以上可以得出总跳法为: f(n)= f(n-1)+ f(n-2),所以,其实就是斐波那契数列的改版。
public class Solution {
public int JumpFloor(int target) {
int sum = 0;
if(target==1)
return 1; //只剩一个台阶,只能走一步
if(target==2)
return 2; //剩两个台阶,可能走一次两步,或者两次一步,所以返回2种方法。
sum+=JumpFloor(target-1);//走一步
sum+=JumpFloor(target-2);//走两步
return sum;
}
}