【Offer】[10-2] 【青蛙跳阶问题】
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路分析
- 其实就是斐波那契数列,
- f(1)=1 f(2) =2 ,n= 3时,两种情况:
- 青蛙先跳一个台阶,后面还有两个台阶,所以跳法就为f(2),
- 青蛙先跳两个台阶,后面还有1个台阶,所以跳法就为f(1),
- 综上 n=3 时 跳法为f(1)+f(2)
Java代码
public class Offer010_2 {
public static void main(String[] args) {
}
public static int JumpFloor(int target) {
return Solution1(target);
}
/**
* 解法一 斐波那契数列 非递归
* @param target
* @return
*/
private static int Solution1(int target) {
if(target == 1) {
return 1;
}
if(target ==2) {
return 2;
}
int fm2 = 1;
int fm1 = 2;
int fN = 0;
for(int i=3;i<=target;i++) {
fN =fm2+fm1;
fm2 = fm1;
fm1 = fN;
}
return fN;
}
}
代码链接
************ **供自己学习查阅使用(我只想静静的写篇博客,自我总结下[手动狗头]) by Pavel** *********