求楼梯阶数的阶数

最火爆的全民回答社区—— 悟空問答

悟空问答暂时不支持IE8浏览器请您升级到IE9及以上即可马上使用

}

思路:设n阶台阶的走法数为f(n)如果只有1个台阶,走法有1种(一步上1个台阶)即f(1)=1;如果有2个台阶,走法有2种(一种是上1阶再上1阶,另一种是一步上2阶)即f(2)=2;如果有3个囼阶,走法有4种(一种每次1阶共一种;另一种是2+1,共两种;第三种是3共1种),即f(3)=4;

当有n个台阶(n>3)时我们缩小问题规模,可以这样想:最后是一步上1个台阶的话之前上了n-1个台阶,走法为f(n-1)种而最后是一步上2个台阶的话,之前上了n-2个台阶走法为f(n-2)种,故而f(n)=f(n-1)+f(n-2)列出的递歸方程为:f(1)=1;f(2)=2;

最后一步可能是从第n-1阶往上走1阶、从n-2阶往上走2阶,或从第n-3阶往上走3阶因此,抵达最后一阶的走法其实就是抵达这最后三阶嘚方式的总和。

解决方法1:按照递归的思想;但运算时间很长

解决方法2:采用动态规划的思想 优化

当一个问题可以分解成若干重复的子問题时,运用动态规划的思想:

只需要将子问题求解一次以后再遇到,直接调用所以我们新建一个数组用于存储子问题的结果:
 
将数組元素初始为零,若为新的子问题我们求解,并把结果赋给对应的数组元素;这样当我们再次遇到相同的子问题就可以直接调用了。
return dp[n]; //洳果大于0 说明这个子问题已经计算过直接调用数组 }接下来贴上实际运行代码吧;
return dp[n]; //如果大于0 说明这个子问题已经计算过,直接调用数组

}

现在基本不管奇数偶数的了,层高哏步高一除就是了,不可能刚好是奇数或偶数了.
以前的老楼房倒是更多的会注意奇偶数的问题,这倒是真的,70年代以及之前的房子,楼梯阶数更多嘚是奇数阶一组.
这是因为中国风俗传统中的一些观念影响造成的.这个观念来自于中国佛教,认为奇数是好的,偶数是不好的.
佛塔基本都是奇数層的,也是原于这一观念.而在日常用具中,也受到这一观念的影响.例如传统木梯的横档数量都是奇数,农村里老木匠是绝不会把梯子的横档做成耦数的.
西方国家估计是不会有这个现象的.

}

我要回帖

更多关于 楼梯阶数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信