python斐波那契前20递归_算法python实现经典递归问题(汉诺塔, 斐波那契数列,阶乘)...

经典递归

汉诺塔问题

背景故事

传说印度某间寺院有三根柱子,上串64个金盘。寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子;预言说当这些盘子移动完毕,世界就会灭亡。这个传说叫做梵天寺之塔问题(Tower of Brahma puzzle)。但不知道是卢卡斯自创的这个传说,还是他受他人启发。

若传说属实,僧侣们需要 (2的64次方 − 1) 步才能完成这个任务;若他们每秒可完成一个盘子的移动,就需要5845亿年才能完成。整个宇宙现在也不过137亿年。

游戏规则:

1.借助B柱子将A柱子上面的圆盘移动到C柱子

2.小圆盘上不能放大圆盘

3.在三根柱子之间一次只能移动一个圆盘

源码(python实现):

def hanoi(n, a, buffer, c):

if(n == 1):

print(a,"--->",c)

return

hanoi(n-1, a, c, buffer)

hanoi(1, a, buffer, c)

hanoi(n-1, buffer, a, c)

def main():

n = int(input("请输入汉诺塔铜盘的个数:"))

hanoi(n, "a", "b", "c")

if __name__ == "__main__":

main()

求斐波那契数列

背景故事:

在西方,最先研究这个数列的人是比萨的列奥那多(意大利人斐波那契Leonardo Fibonacci),他描述兔子生长的数目时用上了这数列:

第一个月初有一对刚诞生的兔子

第二个月之后(第三个月初)它们可以生育

每月每对可生育的兔子会诞生下一对新兔子

兔子永不死去

假设在n月有兔子总共a对,n+1月总共有b对。在n+2月必定总共有a+b对:因为在n+2月的时候,前一月(n+1月)的b对兔子可以存留至第n+2月(在当月属于新诞生的兔子尚不能生育)。而新生育出的兔子对数等于所有在n月就已存在的a对.

游戏规则:

费波那契数列由0和1开始,之后的费波那契系数就是由之前的两数相加而得出

源码(python实现):

def Fibonacci(num):

if num == 1 or num == 2:

return 1

elif num == 0:

return 0

else:

return Fibonacci(num-1) + Fibonacci(num - 2)

def main():

num = int(input("请输入斐波那契的位数:"))

result = Fibonacci(num)

print("第%d位斐波那契数的值为%d"%(num, result))

if __name__ == "__main__":

main()

求阶乘

一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1

源码(python实现):

def factorial(num):

if num == 1 or num == 0:

return 1

else:

return num *factorial(num-1)

def main():

num = int(input("请输入需要求阶乘的整数:"))

result = factorial(num)

print("%d的阶乘为%d"%(num, result))

pass

if __name__ == "__main__":

main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hello This Cruel World!

第一天,已经成为了半年的OIer,仍然是个蒟蒻,希望以后能够变强! 在OJ和博客的常用网名: TimeTraveller ->洛谷 VictoryCzt ->csdn,cnblog等 Czt Czttt czt ->OJ CrazyTea CrazyTeaMajor 游戏,QQ…

计算机系统的部件名称作用,电脑配件与每个配件作用详细完整的解释

电脑各配件的具体功能和特性说起来很长,先简单介绍一下。一台个人台式电脑的主要配件有:1.主板:也叫母板,是连接CPU、内存、AGP等电脑配件的最主要最基本的载体,主板的结构类型决定电脑各配件的结构和类型,…

信道效率以及信道的吞吐率

信道的效率即为信道的利用率,是指发送方在一个发送周期的时间内,有效的发送数据所需要的时间占整个发送周期的比率。 例如,发送方从开始发送数据,到收到第一个确认帧为止,称为一个周期,设为T。发送方在这个周期内共发…

jquery兄弟标签_js jquery获取当前元素的兄弟级 上一个 下一个元素

var chils s.childNodes; //得到s的全部子节点var pars.parentNode; //得到s的父节点var nss.nextSbiling; //获得s的下一个兄弟节点var pss.previousSbiling; //得到s的上一个兄弟节点var fcs.firstChild; //获得s的第一个子节点var lcs.lastChile; //获得s的最后一…

将本地代码备份到Github public repository

1. 在本地代码所在的文件夹中初始化,即打开powershell,输入下面命令 git init 此时本地文件夹中会出现一个.git的隐藏文件夹。 2. 然后将当前的文档commit,在本地commit之前可以先加一个.gitignore文件,忽略一些不必要的文件&…

推辞掉得不是你的工作,而是你的未来

在民营企业,年轻人无疑是主力,为什么年纪相仿,他是经理,我却是职员?相信对此愤恨不平的大有人在!说什么人家后台硬、或者别人嘴巴甜,恨自己生不逢时、怨自己出身平凡的居多,相反检讨…

路考计算机系统评判,科目三智能考试有效解决路考舞弊行为

科目三智能考试是指通过在考试车辆上加装计算机、定位系统、传感器、音视频采集等设备实现对考试项目的自动化评判,代替原来人工评判,且记录考试过程的音视频资料,提供考试过程回放等相关功能。科目三自动化考试减少了人为因素对考试过程的干…

跟我一起玩Win32开发(20):浏览文件夹

最近忙于一些相当无聊的事情,还没忙完,不过,博客还是要写的,不然我头顶上会多了几块砖头。 在上一篇博文中,我们浏览了文件,今天我们也浏览一下目录,如何? 浏览目录我们同样有两个规…

什么材料反射热量好_封阳台用什么材料好,封阳台用什么玻璃好

展开全部阳台是建e68a8462616964757a686964616f31333433663065筑物室内的扩张,是居住者吸取新鲜空气、晒各种衣物、放置盆栽的场地方,其装修需要顾及实用更要注重美观问题。封阳台的优点1、具有保暖等的作用。阳台封闭后,多了一层抵挡尘埃和噪…

k8s实战之从私有仓库拉取镜像 - kubernetes

1、实战目的 从私有docker仓库拉取镜像,部署pod。上一篇中,我们搭建了私有的镜像仓库,这一篇我们将与k8s结合实战使用私有仓库。 2、登录docker 为了完成本次实战,需要登录docker,如下: 3、为k8s集群创建Se…

李开复评价马斯克:他真正的目的是把人变成半机械人

本文来自AI新媒体量子位(QbitAI)李开复在昨日接受Quartz的采访时说,伊隆马斯克在用太阳能汽车和脑部医疗植入物做诱饵掩饰他真正的目的:改变从传统电力公司获得能源的方式,并且将人类变成半机械人。 △ 伊隆马斯克 李开…

《那些年啊,那些事——一个程序员的奋斗史》

段伏枥,一个瘦小,矮小,根本和“帅”这个字粘不上任何关系的普通人。名字的来源在于其多读了几年书的老爹,总抱着有一天要出书出名乃至于名流千古的美好理想,但可惜现实总是给予他无情的而又现实的打击,于是…

计算机机房安全风险防控规范,中心机房安全风险分析一览表

《中心机房安全风险分析一览表》由会员分享,可在线阅读,更多相关《中心机房安全风险分析一览表(6页珍藏版)》请在人人文库网上搜索。1、中心机房安全风险分析一览表组件构件丿元糸风险点物理环境 及保障物理环境场地场地选址不当场地安全措施不当自然灾害…

c语言的翻译叫什么_什么是编译器?什么是集成开发环境?

我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类…

平板电脑硬件如何测试软件,先锋(Pioneer)G71平板电脑软件测试评测-ZOL中关村在线...

谷歌对旗下的智能操作系统Android采取了开源的做法,所以说也就造成了它相较于苹果iOS以及微软Windows系统严重的碎片化现象,当然我们也看到了像三星 TouchWiz UX,HTC Sense UI以及小米 MIUI这些非常成熟且易用的第三方固件,只是它…

WPF 中设置Combox下拉框Text 显示值

最近在写一个WPF客户端的一个小程序,其中有个小需求如下: 展示下拉列表里面有树形结构点击下拉子项时同时显示父级和子级文本也就是说在DisplayMember 中有两种显示方式 下拉列表显示时,显示的是DisplayMember 的值点击选中子项时&#xff0c…

简单的文件上传功能实现(java)

现在很多做后台系统的项目大部分都会用到文件上传这个功能,网上有很多例子,这边是自己用SSM框架技术做的一个简单的文件上传功能。 在写文件上传功能前首先要导入相应的jar包: commons-fileupload-1.3.1-jar ;commons-io-2.2-jar …