每日一题[13]-青蛙变态跳台阶

2017-03-05  本文已影响0人  MAXPUP

一只青蛙一次可以跳上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;

这是利用位移计算次方,大神果然厉害。

上一篇 下一篇

猜你喜欢

热点阅读