Python解决N阶台阶走法问题的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python解决N阶台阶走法问题的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1540字,纯文字阅读大概需要3分钟。
内容图文
![Python解决N阶台阶走法问题的方法](/upload/InfoBanner/zyjiaocheng/430/1e88d37e8026424aac83095b13a4db48.jpg)
本文实例讲述了Python解决N阶台阶走法问题的方法。分享给大家供大家参考,具体如下:
题目:一栋楼有N阶楼梯,兔子每次可以跳1、2或3阶,问一共有多少种走法?
Afanty的分析:
遇到这种求规律的问题,自己动动手推推就好,1阶有几种走法?2阶有几种走法?3阶有几种走法?4阶有几种走法?5阶有几种走法?
对吧,规律出来了!
易错点:这不是组合问题,因为第1次走1阶、第2次走2阶不同于 第1次走2阶、第2次走1阶
下面是Python的递归实现代码:
def allMethods(stairs): ''''' :param stairs:the numbers of stair :return: ''' if isinstance(stairs,int) and stairs > 0: basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3) else: print 'the num of stair is wrong' return False
当然也可以用非递归的方法来实现,下面就是基于递推法的代码:
def allMethod(stairs): '''''递推实现 :param stairs: the amount of stair :return: ''' if isinstance(stairs,int) and stairs > 0: h1,h2,h3,n = 1,2,4,4 basic_num = {1:1,2:2,3:4} if stairs in basic_num.keys(): return basic_num[stairs] else: while n <= stairs: temp = h1 h1 = h2 h2 = h3 h3 = temp + h1 + h2 return h3 else: print 'the num of stair is wrong' return False
好的,以上就是分别用了递归和递推法实现的过程。
相关推荐:
python编程通过蒙特卡洛法计算定积分详解
python中subprocess批量执行linux命令
以上就是Python解决N阶台阶走法问题的方法的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的Python解决N阶台阶走法问题的方法全部内容,希望文章能够帮你解决Python解决N阶台阶走法问题的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。