一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:每个台阶都有跳与不跳两种情况(除了最后一个台阶),最后一个台阶必须跳。所以共用2^(n-1)中情况
验证:
1个:(1)→1
2个:(1 1)(2)→2
3个:(1 1 1)(1 2)(2 1)(3)→4
4个:(1 1 1 1)(2 1 1)(1 2 1)(1 1 2)(2 2)(3 1)(1 3)(4)→8
5个:(1 1 1 1 1)(2 1 1 1)(1 2 1 1 )(1 1 2 1)(1 1 1 2)(2 2 1)(2 1 2)(1 2 2)(3 1 1)(1 3 1)(1 1 3)(2 3)(3 2)(4 1)(1 4)(5)→16
n个:→2^(n-1)
1 class Solution { 2 public: 3 int jumpFloorII(int number) { 4 return 1<<(number-1); 5 } 6 };