题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
/*
* 思路:为了到达第n个台阶,只能是从第n-1个或者是从第n-2个台阶上来的
* 所以第n步的跳法是第n-1步的跳法加上第n-2步的跳法相加
* 本质上是斐波那契数列。
*/
class Solution {
public:
int jumpFloor(int number) {
if(number == 0) return 0;
if(number == 1) return 1;
if(number == 2) return 2;
int f1 = 1, f2 = 2;
number--;
while(--number){
f2 += f1;
f1 = f2 - f1;
}
return f2;
}
};
JS实现
function jumpFloor(number)
{
if(number == 0) return 0;
if(number == 1) return 1;
if(number == 2) return 2;
var f1 = 1, f2 = 2;
number--;
while(--number){
f2 += f1;
f1 = f2-f1;
}
return f2;
}