题解 | #跳台阶扩展问题#
跳台阶扩展问题
http://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387
/*第一种解法 递归*/ class Solution { public: int jumpFloorII(int number) { if(number == 1 || number == 0) return 1; return 2 * jumpFloorII(number-1); } }; /*第二种解法 非递归硬算*/ class Solution { public: int jumpFloorII(int number) { int res = 1; if(number == 0 || number == 1) return res; for (int i = 2; i <= number; i++) res *= 2; return res; } }; /*第三种解法 位运算*/ class Solution { public: int jumpFloorII(int target) { return 1 << (target - 1); } };