class Solution {
public:
void _jumpfloor(int rec,int goal,int* count){
if(rec > goal) return;
if(rec == goal)
{
*count = *count+1;
return;
}
for(int i=1;i<=goal;i++)
{
_jumpfloor(rec+i,goal,count);
}
}
int jumpFloorII(int number) {
int k = 0;
_jumpfloor(0,number,&k);
return k;
}
};
本题实现基本与JZ8跳台阶相同,不同的是JZ8一次只能走1阶或2阶,而在本题中一次可走n阶,即可以实现"一步到位",所以只需改为用循环实现一次走1~n阶即可。