Python实现递归

来源:互联网 发布:淘宝网舞蹈上衣长袖 编辑:程序博客网 时间:2024/06/02 02:45

递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。能把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略常常只需要少量的代码

初学编程,接触递归的时候我只觉得,哇,好厉害好厉害啊,好像很简单的样子,但是真正用起来比较考验你的思维逻辑,理清问题是前提关键。

例子:汉诺塔游戏
这里写图片描述
hanoi规则就是把一叠大小递增的圆盘从a移动到c,在整个过程中,可以借助b,但是必须保证小盘在大盘上方。

递归思路:当a上有n(n>1)个盘子时,利用b作为辅助,先将上方的n-1个盘子移动到b上,然后n号盘就能从a移到c;
同理,接下来就是递归的思想了,再用a作为辅助,按同上的思路把上方的n-2个盘子移动到a,然后n-1号盘就能移到c了。

下面的代码给出解游戏的方法:

def hanoi(n,x,y,z):    if n==1:        print(x,' --> ',z)    else:        hanoi(n-1,x,z,y)        print(x,' --> ',z)         hanoi(n-1,y,x,z)n=int(input('请输入入汉诺塔的层数:'))hanoi(n,'x','y','z') 

这里写图片描述

0 0