题目描述
:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:
百度百科:斐波那契数列
斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
1.当青蛙第一次跳1级台阶时,剩余跳法为f(n-1);
2.当青蛙第一次跳2级台阶时,剩余跳法为f(n-2);
3.由此可判断此题为斐波那契数列。
实际操作:
public int JumpFloor(int target) {
/* if(target==1) return 1;
if (target==2) return 2;*/
if (target==1 || target==2) return target;
int jump=0;
int stepOne=2;
int stepTwo=1;
//迭代
for (int i = 3; i <= target; i++) {
jump=stepOne+stepTwo;
stepTwo=stepOne;
stepOne=jump;
}
return jump;
}
public int JumpFloor2( int num) {
//递归
if (num==1 || num==2) return num;
else return (JumpFloor2(num-1)+JumpFloor2(num-2));
}