跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题目解析
青蛙跳台阶的问题也就是斐波那契数列的变形,我们可以通过找规律:
1个台阶----》1种方法(1)
2个台阶----》2种方法(1、1和2)
3个台阶----》3种方法(1、1、1和1、2和2、1)
4个台阶----》5种方法(1、1、1、1和1、1、2和1、2、1和2、1、1和2、2)
…
以此类推就可以得出1、2、3、5、8、13、21、34、…斐波那契数列
public int JumpFloor(int target) {
//台阶数小于1的话返回0
if(target<1){
return 0;
}
//有一个台阶时只有一种方法
if(target==1){
return 1;
}
//有两个台阶时有两种方法
if(target==2){
return 2;
}
//这样就可以推出斐波那契数列的
return JumpFloor(target-1)+JumpFloor(target-2);
}