首页 > 代码库 > 走楼梯算法
走楼梯算法
首先,我们来看下下面这栋楼梯:
一共四层,我们规定“一个人爬楼梯,一步可以迈一级,二级台阶,如果楼梯有N级,要求编写程序,求总共有多少种走法”,接下来我们统计下这四层,每层的走法:
从这个简短的统计中,我们可以发现一个规律(如果觉得还看不出,可以再多几阶楼梯),从第三阶梯开始,走法就是第一阶梯走法和第二阶梯走法之和,第四阶梯走法是第三阶梯和第二阶梯走法之和,所以,我们可以得到如下如下公式:
由此可知,此处应用递归算法。
而第一阶梯和第二阶梯这样无规律的数字,我们可以将他定量表示,由此,我们得出如下实现方式来求出N阶阶梯的走法:
function getNum($n) { switch($n) { case 1: return 1; case 2: return 2; default: return getNum($n-1) + getNum($n-2); } }
假如爬楼梯时一步还可以迈三步,这时候其实就是,N级楼梯问题可以划分为:N-1级楼梯,N-2级楼梯,N-3级楼梯的走法之和。以此类推,不过一般也就时最大三步了。
走楼梯算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。