一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解:
1级台阶: 1
2级台阶: 1 + 1 = 2
3级台阶: 2 + 1 + 1 = 4
4级台阶: 4 + 2 + 1 + 1 = 8
5级台阶: 8 + 4 +2 + 1 + 1 = 16
所以就是序列前叠加再加n级一起跳1中方法,即 2的n-1次方(qiu'he)。
function jumpFloorII(number)
{
// write code here
if(number === 1){
return 1;
}
if(number === 2){
return 2;
}
if(number <= 0) {
return false;
}
var result = 1;
while(number > 1){
result *= 2;
number --;
}
return result;
}
我酱紫写牛客网说存在非法调用的情况,暂时不理解,保留
但我看到了大神的写法
return 1<<--number;
这是利用位移计算次方,大神果然厉害。
网友评论