题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
转换一下题目的意思,如图。
1.共有n级的台阶,每一个格子代表一个台阶,把每次跳完一步的落脚点记为"1",没停留的台阶记为"0";
2.因为最后肯定会跳在最后一格上,所以第n个格子必定为"1"。
根据条件1和条件2,其实就是求(n-1)位可表示的二进制数的数量。
代码实现:
public class Solution {
public int JumpFloorII(int target) {
return 1<<(target-1);
}
}