题解 | #排序#
跳台阶
http://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4
采用递归求解
思路分析:每次需要跳一阶台阶或者两阶台阶,采用递归的话,成功的次数,我决定使用一个静态变量去存储,这样的话,不管递归多少次我们都能够拿到那个真实的成功个数,并且我们使用两个变量tmp1和tmp2分别去存储减1和减2的值,这样做的好处是把number分离出来,分别判断tmp1和tmp2的值是否为0来决定是否静态变量加1
话不多说,直接上代码
</>
class Solution {
public:
int jumpFloor(int number) {
static int count =0;
int tmp1 = number-1;
int tmp2 = number - 2;
if (tmp1 == 0 && tmp2!=0) {
count++;
jumpFloor(tmp2);
}
else if(tmp1 != 0 && tmp2 == 0) {
count++;
jumpFloor(tmp1);
}else if (tmp1 < 0 || tmp2 < 0) {
count += 0;
}
else {
jumpFloor(tmp1);
jumpFloor(tmp2);
}
return count;
}
};