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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容