青蛙一次可以跳一次,也可以跳两次,n阶台阶多少种可能性
法一:
class Solution {
public:
int jumpFloor(int number) {
if(number==0)
return 0;
int i=0,j=1;
int n=0;
for(int k=0;k<number;k++)
{
n=i+j;
i=j;
j=n;
}
return n;
}
};
法二:
class Solution {
public:
int jumpFloor(int number) {
if(number==1)
return 1;
else if(number==2)
return 2;
else if(number>2)
return jumpFloor(number-1)+jumpFloor(number-2);
}
};
变态跳法:
青蛙可以一次性跳一次,也可以一次性跳2次...也可以跳n次,求n阶台阶跳法?
class Solution {
public:
int jumpFloorII(int number) {
if(number==0)
return 1;
int n=0;
for(int i=1;i<=number;i++)
n+=jumpFloorII(number-i);
return n;
}
};