难理解,求详细的举例解答
乘阶的例子还看得懂,但是后面的汉诺塔,看不懂,也不但了解,能不能进一步详细解答,求高手,通俗易懂的举例!
乘阶的例子还看得懂,但是后面的汉诺塔,看不懂,也不但了解,能不能进一步详细解答,求高手,通俗易懂的举例!
2015-03-06
汉诺塔整体思路就是运用递归函数:
#_*_ coding:utf-8 _*_
def move(n,a,b,c): #定义移动函数,将n个盘子,从a移动到c
if n==1:
print a,'-->',c
return #只有1个盘子,直接将这个盘子从a移动到c
#当大于1时,开始引用递归函数,现将n个盘分为两部分:1个和n-1个,1个时候就按照上述直接移动
move(n-1,a,c,b) #n-1个时,先将n-1个从a移动至b,就左边的函数(a,b,c位置变化,是因为函数定义
print a,'-->',c 是将a移动c,所以要从a移动至b,b的位置要发现生变)
move(n-1,b,a,c) #这个就是将移动b的盘子移动到c,参数位置变化原因同上
move(4,'a','b','c')
举报