題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
原題鏈接:https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
題目解析
其實就是斐波那契數列。
遞歸方法
class Solution {
public:
int jumpFloor(int number) {
if (number==1)
return 1;
else if (number==2)
return 2;
return jumpFloor(number-1) + jumpFloor(number-2);
}
}
迭代方法
class Solution {
public:
int jumpFloor(int number) {
int f = 0;
int g = 1;
while(number--)
{
g += f;
f = g-f;
}
return f;
}
}