跳台阶
跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
斐波那契数列的变形, 非递归版与递归版都多了2 == number
的判断
版本一: 非递归版
class Solution {
public:
int jumpFloor(int number) {
int fn_1 = 2;
int fn_2 = 1;
int ret = 0;
if (number <= 0) {
return ret;
}
if (number == 1) {
return 1;
}
if (2 == number) {
return 2;
}
for (int i = 2; i < number; i++) {
ret = fn_1 + fn_2;
fn_2 = fn_1;
fn_1 = ret;
}
return ret;
}
};
版本二: 递归版
class Solution {
public:
int jumpFloor(int number) {
if (0 >= number) {
return 0;
}
if (1 == number) {
return 1;
}
if (2 == number) {
return 2;
}
return jumpFloor(number - 1) + jumpFloor(number - 2);
}
};