码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer[9]——变态跳台阶

时间:2020-03-09 17:38:59      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:青蛙跳   math   一个   观察   跳台阶   ber   java   rip   fun   

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

这个题目是跳台阶的进阶版,其实跟大家分析一下,这道题其实比上一道题简单。在这道题目中,青蛙可以随意一次性跳n级台阶,也就是说如果青蛙想我先枚举一下前几级台阶的跳法数量:

第一级台阶:1=1(直接从平面跳过来)

第二级台阶:1+1=2(从平面跳过来或从第一级跳过来)

第三级台阶:1+2+1=4(从平面跳过来或从第一级或从第二级跳过来)

第四级台阶:1+2+4+1=8

第五级台阶:1+2+4+8+1=16

第六级台阶:1+2+4+8+16+1=32

第七级台阶:1+2+4+8+16+32+1=64

大家观察规律可以看出来下一级台阶的方法数量是前一级台阶的两倍,正好是2的次方:
\[ jumpFloorII[n] = 2^{n-1} \]
所以我们就可以很简单的写出算法:

function jumpFloorII(number)
{
    return Math.pow(2, number-1);
}

剑指offer[9]——变态跳台阶

标签:青蛙跳   math   一个   观察   跳台阶   ber   java   rip   fun   

原文地址:https://www.cnblogs.com/Jacob98/p/12449763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!