题干
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
和第八题而言每次的台阶数只能是1和2不一样,这个方法可以对于每一级都有不定项的跳方法。我们还是先列出来一部分的台阶数
台阶数 | 方法 | 不同的结果 |
---|---|---|
1 | 1 | 1 |
2 | 11 2 | 2 |
3 | 111 12 21 3 | 4 |
4 | 1111 112 121 211 22 13 31 4 | 8 |
我们可以发现的是对于每下级的太极的跳数等于上一级的两倍。具体的思量就不再深入考虑。
代码
public class Solution {
c int JumpFloorII(int target) {
if(target<=0)
return -1;
else if(target==1)
return 1;
else return 2*JumpFloorII(target-1);
}
}