题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:如果青蛙最后跳一级的话,则总共的跳法与跳n-1级的数目相同,如果青蛙最后跳2级的话,总跳数与跳n-2级的数目相同,
所以:总跳数为:f(n)=f(n-1)+f(n-2);本质上是一个斐波那契数列。
源代码:
public class Solution {
public int JumpFloor(int target) {
int prepre=1,pre=2;
if(target<=2)
return target;
for(int i=3;i<=target;i++){
pre += prepre;
prepre =pre - prepre;
}
return pre;
}
}