题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
<分析>:1.假设当有n个台阶时假设有f(n)种走法。
2.青蛙最后一步要么跨1个台阶要么跨2个台阶。
3.当最后一步跨1个台阶时即之前有n-1个台阶,根据1的假设即n-1个台阶有f(n-1)种走法
4.当最后一步跨2个台阶时即之前有n-2个台阶,根据1的假设即n-2个台阶有f(n-2)种走法
5.显然n个台阶的走法等于前两种情况的走法之和即f(n)=f(n-1)+f(n-2)------------斐波那契数列
6.当n=1时,f(1)=1,当n=2时f(2)=2
1(n=1)
f(n)= 2(n=2)
f(n-1)+f(n-2) (n>2)
n为整数
/**
*
* @author zy
* @date 2017年10月3日 上午9:40:25
* @Decription 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
*/
public class Jump {
public int JumpFloor(int target){
int fn1 = 1;
int fn2 = 2;
if (target <= 0) {
return 0;
}else if (target == 1) {
return 1;
}else if (target == 2) {
return 2;
}
while(target > 2){
fn2+=fn1;
fn1 = fn2 - fn1;
target--;
}
return fn2;
}
}